片想いは檸檬の味ツール

ツイッターの片想いを調べるツールです。。。って、「絡まったぁ」の整備前、と、フォロされているけど、フォローしなくちゃ駄目だったのかなぁ、を調べられます。

# フォロー返しが、得意じゃないもので、ちょっと相手をログを見てからフォローしてます。
# 逆に、フォローするけど連絡はしません。「ぼけ突っ込み」をしているのは私 @moonmile です。

さて、apiの回数制限の関係から本来ならば、jQuery を使うと良いのですが、実験用ツールなので、そのまま公開しちゃいます。

image

こんな感じに、

  • 両想い 相互フォローの場合は、ピンク
  • 片想い 自分だけがフォローしている場合は、レモン色
  • フォローされているだけだと、ブルー

になります。

http://moonmile.net/php/krm005.php

http://moonmile.net/php/krm005.php?id=アカウント

のようにアカウントが指定できます。

結構重たいので、1,000人しかチェックしていません。

api 的には、statuses/friends を使っているのですが、本来は friends/ids, followers/ids を使って、詳細情報を拾ってくるのが筋です。ただ、ids のほうは、一度に300名ぐらい拾ってこれるのですが、ID のみなので、その後の詳細を拾うために api 制限にすぐ引っ掛かります。それゆえ、statuses/friends のほうがいいんですなぁ。まあ、ID のほうは、別途使い道があるので、またの機会に。

私の場合

フォロー 105 フォロア 109 相互 68 トータル 146

な数値になります。これが、どのくらいが適正(?)なのかは不明ですが、幾人か統計を取ってみれば平均値みたいなのが出るでしょう。そうすると、バランスが悪い人は「営業目的かな?」ってな訳で、避けることができます。

そんな訳で、ソースも公開しておいます。ローカルでPHPが動く環境にすると、色々調べられますよ。

 <?php
if ( $_GET['id'] != "" ) {
 $username = $_GET['id'];
} else {
 $username = 'moonmile';
}
$cursor = "-1"; 
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>フォロー/フォロア of <?= $username ?></title>
</head>
<body> <?php $cnt_fre = 0;
$cnt_fol = 0;
$cnt_ff  = 0;
$cnt = 0;
$users = array(); // friendsを取得
for ( $i=0; $i<10; $i++ ) { $url = "http://api.twitter.com/1/statuses/friends/".$username.".xml";
$url = $url ."?cursor=".$cursor; $rss = simplexml_load_file($url); foreach ( $rss->users->user as $user ) {  $v = new stdClass;
 $id = $user->id;
 $v->id = $user->id;
 $v->name = $user->name;
 $v->sname = $user->screen_name;
 $v->icon = $user->profile_image_url;
 $v->lang = $user->lang;
 $v->friends = true;
 
 $users[(string)$id] = $v ;
 $cnt++; 
 $cnt_fre++; // echo "<tr><td>".$cnt."<td>".$id."<td>".$name."<td>".$sname."<td>".$icon."<td>".$lang."</tr>\n";
} $next = $rss->next_cursor;
$prev = $rss->previous_cursor;
/*
if ( $prev != "0" ) {
 echo "<a href='krm005.php?id=".$username."&cur=".$prev."'>prev</a> \n";
}
if ( $next != "0" ) {
 echo "<a href='krm005.php?id=".$username."&cur=".$next."'>next</a> \n";
}
*/
 if ( $next == "0" ) break;
 $cursor = $next; }
// followersを取得
$cursor = "-1";
for ( $i=0; $i<10; $i++ ) { $url = "http://api.twitter.com/1/statuses/followers/".$username.".xml";
$url = $url ."?cursor=".$cursor;
$rss = simplexml_load_file($url); foreach ( $rss->users->user as $user ) {  $id = $user->id;
 $v = $users[(string)$id];
 if ( $v ) {
  $v->followers = true;
  $cnt_ff++;
 } else {
  $v = new stdClass;
  $v->id = $user->id;
  $v->name = $user->name;
  $v->sname = $user->screen_name;
  $v->icon = $user->profile_image_url;
  $v->lang = $user->lang;
  $v->followers = true;
  $users[(string)$id] = $v ;
  $cnt++; 
 }
 $cnt_fol++;
} $next = $rss->next_cursor;
$prev = $rss->previous_cursor;
 if ( $next == "0" ) break;
 $cursor = $next; } ?> <?= $username ?><hr>
フォロー <?= $cnt_fre ?>
フォロア <?= $cnt_fol ?>
相互 <?= $cnt_ff ?>
トータル <?= $cnt ?>
<hr> <table>
<tr>
 <td>No.
 <td>ID
 <td>フォロー
 <td>フォロア
 <td>名前
 <td>アカウント
 <td>アイコン
</tr> <?php
foreach ( $users as $v ) {
 
 if ( $v->friends == true && $v->followers == true ) {
  $bgcol = "pink";
 } else if ( $v->friends == true ) {
  $bgcol = "lightyellow";
 } else {
  $bgcol = "aliceblue";
 }
 echo "<tr style='background-color: ".$bgcol."'>";
 echo "<td>".$cnt;
 echo "<td>".$v->id;
 if ( $v->friends == true ) {
  echo "<td>○";
 } else {
  echo "<td>-";
 }
 if ( $v->followers == true ) {
  echo "<td>○";
 } else {
  echo "<td>-";
 }
 echo "<td><a href='http://twitter.com/".$v->sname."'>".$v->name."</a>";
 echo "<td><a href='krm005.php?id=".$v->sname."'>".$v->sname."</a>";
 echo "<td><img src='".$v->icon."' width='48' height='48' />";
 echo "</tr>";
 $cnt--;
} ?>
</table>
</body>
</html>
カテゴリー: 開発 パーマリンク