EasyBotterの片思い自動リムーブ書いてみた
自分のフォローしてる人がプログラミングができなくても作れるTwitter botの作り方を使ってTwitter Botを作ってるんだけど、こないだ片思い状態のフォローを手動で解除してるって話を聞いて「大変だなー」って思ったわけ。んで、ちょっと暇だったのでコード書いてみた。本人には「大丈夫」って言われたから、ただの暇つぶしレベルなんだけどw
とはいえ、自分ところに動く環境がないから動作確認はまったくできてないんだけど。
EasyBotter 1.42用はこんな感じ
<?php // // easybotterで、片思い状態のfriendをremoveする // // 使用方法 // ・easybotterの配置場所(post_random.phpとか)と同じ場所にすること // ・$username, $password はeasybotterに設定したものと同じにすること // chdir(dirname(__FILE__)); require_once("Services/Twitter.php"); require_once('Services/Twitter/Jsphon/Error.php'); require_once("Services/Twitter/Jsphon/Decoder.php"); $st =& new Services_Twitter($username, $password); $arr_friends = $st->getFriends(); $arr_followers = $st->getFollowers(); foreach($arr_friends as $friend) { if(!in_array($arr_followers, $friend['id'])) { $st->removeFriend($friend['id']); } } ?>
EasyBotter 2.04beta用はこんな感じ。こっちはpatch形式。
--- EasyBotter.php.orig Sun Feb 28 01:49:54 2010 +++ EasyBotter.php Sun May 30 13:17:28 2010 @@ -396,6 +396,17 @@ $response = $this->followUser($screen_name); } } + + // 片思い自動リムーブ + function autoRemove() { + $arr_followers = $this->getFollowers(); + $arr_friends = $this->getFriends(); + foreach($arr_friends as $friend) { + if(!in_array($arr_followers, $friend['screen_name'])) { + $this->removeUser($friend['screen_name']); + } + } + } //つぶやきデータを読み込む function readDataFile($file){ @@ -550,6 +561,10 @@ function followUser($screen_name) { $url = "http://twitter.com/friendships/create/".$screen_name.".xml"; return $this->_setData($url); } + function removeUser($screen_name) { + $url = "http://twitter.com/friendships/destroy/".$screen_name.".xml"; + return $this->_setData($url); + } }
検証してないので、使うときは事前にフォロー状態を控えておくなり対策しといてくださいね。