昔、乃木坂46公式Twitterアカウントのつぶやきを見ていて「最近一番多くRTされたツイートってどんなのだろう?」と思ったことがありました。で、当時Java EEとTwitter4Jの勉強兼ねてリツイート数とファボ(いいね)数が確認できる以下Webアプリを趣味開発して公開してました。
http://46collection.sakamichi46.com/

で、最近ラジオ「エバンジェリストスクール! - TOKYO FM Podcasting」の公式ツイートみてて全く同じことを思ったり。
twitter.com
気になったので、(さすがにWebアプリではないのですが)Twitter4Jを利用して同じことを確認をしてみました。
※2017/2/14時点での集計ですので、実際には可変する可能性があります
コードはざっくりこんな感じ。ちょっと適当すぎかも(^^;
package com.sakamichi46.evatfm;
import java.io.BufferedWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import twitter4j.Paging;
import twitter4j.ResponseList;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
@author
public class EvatfmAnalyticsMain {
public static int MAX_PAGE = 200;
public static int COUNT = 100;
@param args
public static void main(String[] args) throws TwitterException, InterruptedException, IOException {
Twitter twitter = TwitterFactory.getSingleton();
List<Status> count = count(twitter);
List<Status> sortedByRetweet = count.stream().sorted(Comparator.comparing(Status::getRetweetCount).reversed()).collect(Collectors.toList());
List<Status> sortedByFav = count.stream().sorted(Comparator.comparing(Status::getFavoriteCount).reversed()).collect(Collectors.toList());
FileSystem fs = FileSystems.getDefault();
Path path = fs.getPath("./evaRetweet.txt");
try(BufferedWriter br = Files.newBufferedWriter(path, Charset.forName("UTF-8"))) {
br.write(sortedByRetweet.toString());
br.close();
}
path = fs.getPath("./evaFav.txt");
try(BufferedWriter br = Files.newBufferedWriter(path, Charset.forName("UTF-8"))) {
br.write(sortedByFav.toString());
br.close();
}
}
public static List<Status> count(Twitter twitter) {
List<Status> listTimeline = new ArrayList<>();
Paging page = new Paging(MAX_PAGE, COUNT);
IntStream.range(1, MAX_PAGE).forEach(i -> {
page.setPage(i);
try {
ResponseList<Status> userTimeline = twitter.getUserTimeline("@waki_evatfm", page);
userTimeline.stream().forEach(s -> {
if(!listTimeline.contains(s)) {
listTimeline.add(s);
}
});
} catch (TwitterException ex) {
System.out.println(ex);
}
});
return listTimeline;
}
}
リツイート数
10位 110RT
と、こんな感じで、全般的に若ちゃんの写真系が多い(^^;;;とはいえ、ある程度予想通りでしたがw
ちなみにエバスク公式ツイートではないですが、乃木坂46の公式アカウントがつぶやいた以下が、RT/Favともに多かったです。
ホントは #evatfm のハッシュタグを含むツイートの量を分析しようと思ったのですが、TwitterのSearch APIは2週間程度分くらいしか取得できないようで確認できませんでした。残念すぎる(*´Д`)(ちなみに2/10(金)~2/13(月)の間で調べたら3871件もありました!)
IT業界に身を置く自分としては、エバスクってホントにITのトレンド情報を流してるので、色々な豆知識ツイートをもっとRT/Favして欲しいなーとも(^^;
で、この分析してて思いついたのですが、趣味で作ってる若月さんのBotに「エバスク」とか「#evatfm」って話しかけたら@evatfmアカウントの過去ツイートをランダムに引っ掛けるような機能を実装しようかなーと思いました。
若様bot、なんだかんだで利用ユーザが100近くなっているので、エバスクリスナーな方々にも是非お試ししてもらいたいなーと思います。以下サイトが詳しいですが
wakasamabot.sakamichi46.com
こちらのQRコードをLINEのQRから読み取ってもらうと友達追加できます。

それにしてもエバスクを聴けば聴くほど若ちゃんを好きになりますね。
