2つのアカウント両方をフォローしているユーザーを数えるワンライナー

@zerna_bot@zenra_bot2の、両方をフォローしているユーザーはどれくらいいるのかと、ふと気になったので久々にワンライナーを書いてみた。


現時点でのそれぞれのフォロワーは

$ perl -MNet::Twitter -le 'print Net::Twitter->new->show_user("zenra_bot")->{followers_count}'
954
$ perl -MNet::Twitter -le 'print Net::Twitter->new->show_user("zenra_bot2")->{followers_count}'
210

これくらい。


これらから重複しているidを抜き出せれば良い。
なんとかTwitterにPOSTできる長さにしようと頑張った結果。

perl -MLWP::Simple -le'++$a{$_}-1&&print for split/\D+/,get($t="http://twitter.com/followers/ids.json?id=zenra_bot").get$t.2'|wc -l

あとで思いついたけど普通にモジュール使ってもそれなりにいける。

perl -MNet::Twitter -le'$t=Net::Twitter->new;++$a{$_}-1&&print for @{$t->followers_ids($z="zenra_bot")},@{$t->followers_ids($z.2)}'|wc -l

前者はjsonデータを繋げた文字列からsplitで数値だけを取り出すという汚いやり方。。後者の方が見るからにスマートではある。


この結果からuserのnameとscreen_nameを取りたいと思ったけどusers/showで1つ1つとっているとAPIを使い切ってしまう。そうなると少ない方のfollowersを取ってきてそれを元に照合していくしかない、、、めんどくさいのでそこまではやらない。