先月頭に更新したきりでしたが
とりあえずあれから内部を弄っていたりpostファイルを更新していたりはしていました。
全部が全部、というわけにはいかなかったのでちょいとアレだったりはしますが。
なんだかちょくちょく見かけるけど
API1.1対応版EasyBotterの「特定のアカウントとのリプライ回数制限」の改造がうまくいってないっぽい方が多いようなので。
うちでは以下のような対応をしています。
なお、入れる場所は
//リプライを作る function makeReplyTweets($replies, $replyFile, $replyPatternFile){ if(empty($this->_replyPatternData[$replyPatternFile]) && !empty($replyPatternFile)){ $this->_replyPatternData[$replyPatternFile] = $this->readPatternFile($replyPatternFile); } $replyTweets = array(); foreach($replies as $reply){ $status = "";
となっている次の行からです。
//■■会話数制限(リプライ返し)■■ $filenameb = "kaiwalog.txt";//kaiwalog.txtに誰からリプライがあったか最新$botk1件記録する //$filenamebは存在するか? if(!file_exists($filenameb)){ touch($twit_logfile) or die('ファイル作成に失敗\n'); chmod($twit_logfile, 0606) or die('権限変更に失敗\n');//※パーミッションは鯖によって違います } $botdata = file_get_contents($filenameb); $botdata2 = $botdata; $countk = substr_count($botdata2,(string)$reply["user"]["screen_name"]); $botdata = explode(",",$botdata); $kazu = count($botdata); $botkey = 1; $botk1 = "10";$botk1--;//記録件数 $botk2 = "2";//回までOK $bottername = array("abcd","efgh");//制限したいアカウント名をいれる if(preg_match("@bot@i",(string)$reply["user"]["screen_name"]) || in_array((string)$reply["user"]["screen_name"],$bottername)){ if ($countk>=$botk2){ $botkey = "0"; $botdata = implode(",",$botdata); }else{ while ($kazu>$botk1){$botdatax = array_pop($botdata);$kazu = count($botdata);} $botdata=implode(",",$botdata); $botdata=(string)$reply["user"]["screen_name"].",".$botdata; } }else{ while ($kazu>$botk1){$botdatax = array_pop($botdata);$kazu = count($botdata);} $botdata=implode(",",$botdata); $botdata=(string)$reply["user"]["screen_name"].",".$botdata; } file_put_contents($filenameb,$botdata); if($botkey == "0"){ continue; }
どこがどう違うのかとかは旧バージョンのものと比較すれば絶対に分かります。
もしこれが分からない人はphpのお勉強ではなく「新旧を比較する」ことをまず学んだ方がいいと思います。