• ベストアンサー

botの劣化コピーへのTL返信対策。

botのTL返信を設定している時に劣化コピーの呟きに反応してしまう時がありますよね。 どのようにして劣化コピーからのツイートには反応しないように出来るのですか? 因みにEasyBotterのソースを借りて作っていますが当方PHP初心者です。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.1

//タイムラインへの反応を作る function makeReplyTimelineTweets($timeline, $replyPatternFile){ if(empty($this->_replyPatternData[$replyPatternFile])){ $this->_replyPatternData[$replyPatternFile] = $this->readPatternFile($replyPatternFile); } $replyTweets = array(); foreach($timeline as $tweet){ $status = ""; //リプライパターンと照合 ↓ //タイムラインへの反応を作る function makeReplyTimelineTweets($timeline, $replyPatternFile){ if(empty($this->_replyPatternData[$replyPatternFile])){ $this->_replyPatternData[$replyPatternFile] = $this->readPatternFile($replyPatternFile); } $replyTweets = array(); foreach($timeline as $tweet){ if (strip_tags($tweet['source']) === '劣化コピー') { continue; } $status = ""; //リプライパターンと照合

noname#249783
質問者

補足

回答有難うございます。 早速EasyBotter.phpを書き換えてbot.phpを作動させてみましたが、劣化コピーからのツイートに反応してしまいます... どうしたら劣化コピーには反応しないように出来るのでしょうか。

その他の回答 (2)

noname#244856
noname#244856
回答No.3

今たまたまタイムラインに知り合いの劣化コピーツイートが流れてきて気づいたのですが、sourceが「劣化コピー」ではなく「rekkacopy」とローマ字表記になっておりました。これに変更すればうまくいくと思います、誤報すみません。

noname#249783
質問者

お礼

有難う御座います!! sourceをrekkacopyに変更後、試してみたら見事に成功しました!! 今までのフォロー本当に感謝します!!

noname#244856
noname#244856
回答No.2

私のソースコードに誤りがあれば申し訳ないですが、私が見る限りでは誤りはありません。 ファイルをUTF-8N以外で編集してしまったのではないでしょうか? (Windowsのメモ帳なんか典型的な地雷です) 「Notepad++」を使えば編集中にファイル全体のエンコーディングを確認・変更できるのでお試しください。 http://notepad-plus-plus.org/

noname#249783
質問者

補足

前回は atpages のファイルマネージャーで UTF-8 ,改行 LF で書き換えていました。 このご指摘をくださった後、 Notepad++ にてエンコードを UTF-8 に、改行は環境設定のフォーマットを Unix へ設定して LF にし新しく公式サイトから落としたプレーンな EasyBotter.php を書き換えた後、すでにサーバーに上がっている前の EasyBotter.php は消して Notepad++ で新しく書き換えたファイルをもう一度上げて実行してみましたが、やはり反応してしまいました... 書き換えた文はこちらです EasyBotter.php の 311行目 から //タイムラインへの反応を作る function makeReplyTimelineTweets($timeline, $replyPatternFile){ if(empty($this->_replyPatternData[$replyPatternFile])){ $this->_replyPatternData[$replyPatternFile] = $this->readPatternFile($replyPatternFile); } $replyTweets = array(); foreach($timeline as $tweet){ if(strip_tags($tweet['source']) === '劣化コピー') { continue; } $status = ""; //リプライパターンと照合 と打ちました。打ち間違えは無いと思います。 後は、サーバー側で何かしらの設定が必要なのでしょうか? サーバーは atpages を使用しています。

関連するQ&A