2011年6月19日日曜日

"#AWS77"をPHPで集計してみた

スズキです。

(ハッシュタグでまとめたいので、 #AWS77 つけて頂きつつ、+1の方は公式RTして頂く感じでどうでしょうか?) #jawsugless than a minute ago via TweetDeck Favorite Retweet Reply


をPHPでまとめてみました。コードは下記の通りです。

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);

curl_setopt($curl, CURLOPT_URL, "http://search.twitter.com/search.json?rpp=100&q=AWS77");
$json = curl_exec($curl);
$search_results = json_decode($json, true);

$ordered_results = array();
foreach($search_results["results"] as $search_result) {
  $tweet_text = $search_result["text"];
  if(strpos($tweet_text, "RT ") === false) {
    $tweet_id = $search_result["id_str"];
    curl_setopt($curl, CURLOPT_URL, "http://api.twitter.com/1/statuses/$tweet_id/retweeted_by.json");
    $json = curl_exec($curl);
    $retweet_results = json_decode($json, true);
    array_push($ordered_results, array(
      "tweet_text"    => $tweet_text,
      "tweet_user"    => $search_result["from_user"],
      "retweet_count" => count($retweet_results)
    ));
  }
}

curl_close($curl);

usort($ordered_results, function($a, $b) {
  if($a["retweet_count"] == $b["retweet_count"]) {
    return 0;
  } else {
    return ($a["retweet_count"] > $b["retweet_count"]) ? -1 : 1;
  }
});

foreach($ordered_results as $ordered_result) {
  print($ordered_result["retweet_count"] . " " . $ordered_result["tweet_user"]  . " " . $ordered_result["tweet_text"] . "\n");
}

※TwitterのAPIのリミットは150リクエスト/時ですので、テスト中にリミットまで
リクエストしてしまったら、テストが中断されてしまいます。ですが、
EC2なら他のEIPをつけなおすことで、また、すぐに、リクエストできるようになります!

そして結果は下記のようになりました。

4 cloudpack_jp 課金情報を取得できるAPIが提供されますように #AWS77 #jawsug
4 b7372        VPCが東京リージョンにきますように。 #AWS77 #jawsug
3 cloudpack_jp PostgreSQLのRDSが始まりますように #AWS77 #jawsug
3 KenTamagawa  #jawsug 大阪の @shi1x1 のLT開始。#AWS77 でみんな七夕の願いを出しているけど、「夢は見るものじゃない叶えるものだ」 課金情報取得APIを作成!
2 cloudpack_jp RDS(MySQL)のタイムゾーンがDBパラメータグループで設定できるようになりますように #AWS77 #jawsug
2 j3tm0t0      (ハッシュタグでまとめたいので、 #AWS77 つけて頂きつつ、+1の方は公式RTして頂く感じでどうでしょうか?) #jawsug
2 tottokug     「玉川さんの仕事が子供に理解されますように」 #AWS77 #jawsug
1 cloudnosuke  RDSがstopできますように。 #AWS77 #jawsug
1 cloudpack_jp VPCで全てのAWSプロダクトが使えるようになりますように #AWS77 #jawsug
1 KenTamagawa  #AWS77 (AWSにほしい機能をお願いする七夕のお願い) 関係の短冊はCloudpackさんの近場のLawsonにつるされているwww #jawsug
0 aibax        Elastic Beanstalkが東京リージョンで使えるようになりますように #AWS77 #jawsug
0 nakau1       みんな、AWSに願い事してる。。#AWS77 #jawsug
0 sato_shi     Beanstalkが東京リージョンに来ますように。 #AWS77 #jawsug
0 tanaka_733   「VPC in Tokyo」「Oracle RDSでEnterprise Manager使いたい」「ELBに入ってくるアクセスへのSecurityGroup」 #AWS77 #jawsug
0 nakau1       次回こそはAWSの勉強会が自分の予定とバッティングしませんように。。#AWS77 #jawsug
0 cloudpack_jp インスタンスに複数EIPが対応されますように #AWS77 #jawsug
0 tanaka_733   Azureと同じように、データセンターへの受信トラフィックが無料になりますように  #AWS77 #jawsug
0 tottokug     「RDSのmicroインスタンスが出ますように!」#AWS77 #jawsug
0 dexdev       何かみんなAWSに願い事してると思ったが、七夕かw知らずに願ってた http://bit.ly/lMfZFt #AWS77 #jawsug
0 dexdev       AutoScalingのLAMPでの具体的解説が出ますように  #AWS77 #jawsug
0 zembutsu     「AWS Management Console が日本語に対応して、もっと多くの人がクラウド・コンピューティングを普通に使えるようになりますように」( -人-)  #AWS77 #jawsug
0 tottokug     勝手課金APIもどき 途中 http://bit.ly/ks7VdA  #jawsug #AWS77
0 FujioSUZUKI  #aws77 AWSへの七夕願い
0 HIKINIKUAGEO AMIsの立ち上げ時のRoot Deviceをinstance-storeとEBSで簡単に切り替えられますように。#AWS77
0 shin1x1      64bit small インスタンスができますように #AWS77 #jawsug
0 suz_lab      "AWS MFA"のデバイスが複数のアカウントで利用できるようになりますように。 #AWS77 #jawsug
0 tottokug     「AmazonReverseProxyが出来ますように!」 #AWS77 #jawsug
0 tottokug     「SimpleDirectoryServiceが出来ますように」#AWS77 #jawsug
0 tottokug     「SecurityGroupでホスト名(Route53で管理されている物に限定)が指定出来るようになりますように」 #AWS77 #jawsug
0 ayakomuro    これは実際にリクエストしたw “@tottokug: 「RDSのmicroインスタンスが出ますように!」#AWS77 #jawsug”
0 tottokug     「SimpleDBの容量が増えますように!」 #AWS77 #jawsug

この結果をSimpleDBにいれてみよう。
--------
http://www.suz-lab.com

0 コメント: