Entry

[EasyBotter2.1]TL反応が2回起きる現象の対策

いつからかbotがTL反応を2回するようになっていまして、検索しても解決策を見つけることが出来ませんでした。
二重というより、一度に複数反応した次に1つだけ2回反応するという現象で、
Twitter Bot BBS内「EasyBotter初心者質問スレ4」669-676あたりに同じことが書いてありました。
その中の

しばらくlog.datへ書きこまれるIDをチェックしていたところ、
1度に複数のリプライを送る(@A ××× @B ×××)と、最後にリプライをしたツイートのID(例の場合はBのID)が書きこまれず重複することが分かりました。

一度に複数のリプライを送るときに書きこまれるIDは、最初のリプライ元でした。

を参考にEasybotter.phpを開き、取得するタイムラインを逆順に並べ替える記述を消してみました。
無改造ファイルで言うところの191~197行目、

    //タイムラインに反応する
    function replyTimeline($cron = 2, $replyPatternFile = "reply_pattern.php"){
        //タイムラインを取得
        $timeline = $this->getFriendsTimeline($this->_latestReplyTimeline,100);
        $timeline2 = $this->getRecentTweets($timeline, $cron);   
        $timeline2 = $this->selectTweets($timeline2);
        $timeline2 = array_reverse($timeline2);        

↑の赤いところが要素を逆順にした配列を返す記述だそうなので

    //タイムラインに反応する
    function replyTimeline($cron = 2, $replyPatternFile = "reply_pattern.php"){
        //タイムラインを取得
        $timeline = $this->getFriendsTimeline($this->_latestReplyTimeline,100);
        $timeline2 = $this->getRecentTweets($timeline, $cron);   
        $timeline2 = $this->selectTweets($timeline2);
//逆順に並べ替える記述隠し // $timeline2 = array_reverse($timeline2);

隠してから様子をうかがっていますが、1日経過した時点で2回反応現象は起きていません。
反応が逆順になっているようですが、小さいことなので気づかないフリを通します。

知識も根拠もなく解決をお約束できない急場しのぎの小細工ですので、お試しの際は自己責任でお願いします。
(上のメモ部分にURLを書いておくと、どこを参考にしたかわかって良いと思われます)

Pagination

Related Entry

Trackback

  • トラックバックはまだありません。

Trackback URL

http://cc.typ.cc/index.php/trackback/40

Comment

  • コメントはまだありません。

Post Your Comment

  • コメントを入力してください。
登録フォーム
Name
Mail
URL
Comment
閲覧制限