「replyTimelineChangeByUser」の編集履歴(バックアップ)一覧はこちら

replyTimelineChangeByUser」(2010/08/05 (木) 04:13:48) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

//php //通常のフォローユーザ、特定のユーザ、Bot、ごとにタイムライン反応用パターンファイルを変えるサンプルです。 //Bot宛に決まった台詞で話しかけることで特定のユーザリストに追加されます。 //タイムライン反応を作成するときに、特定のユーザリストを見て、反応ファイルを変更します。 //動作保証はしません //EasyBotter 本体 //==================== //function makeReplyTweets //冒頭($replyTweets = array(); のあとあたり)に以下の2行を追加 $aryAdduser = array(); $aryDeluser = array(); //「if(empty($status) || $status == "[[END]]"){」の前に以下を追加 //タイムライン反応するユーザリストに追加 if (stristr($status, "[[REPTL]]")) { $user = (string)$reply->user->screen_name; $aryAdduser[] = $user; $status = str_replace("[[REPTL]]", "", $status); } //タイムライン反応するユーザリストから削除 if (stristr($status, "[[NOREPTL]]")) { $aryDeluser[] = (string)$reply->user->screen_name; $status = str_replace("[[NOREPTL]]", "", $status); } //「return $replyTweets;」の前に以下を追加 //-------------------- //タイムライン反応ユーザのファイルへの追加と削除 $userfname = "replyTLusers.txt"; if (count($aryAdduser) > 0 || count($aryDeluser) > 0) { if (file_exists($userfname) == false) { touch ($userfname); chmod($userfname, 606); } $buf = file($userfname); $fp = fopen($userfname, "a+"); $users = array(); foreach($buf as $u) { $u = trim($u); array_push($users, $u); } flock($fp, LOCK_EX); //追加 $users = array_merge($users, $aryAdduser); $users = array_unique($users); //削除 foreach ($aryDeluser as $u) { for ($i = 0; i < count($users); $i++) { if (strcmp($users[$i], $u) == 0) { unset($users[$i]); break; } } } //ファイルへの書き込み ftruncate($fp, 0); foreach ($users as $u) { fputs($fp, $u."\n"); } fclose($fp); } //-------------------- //==================== //makeReplyTimelineTweets //「$replyTweets = array();」の前に以下を追加する $org_repfile = $replyPatternFile; //デフォルトのファイル名を保管 //「//リプライパターンと照合」の前に以下を追加する //ユーザリストを読み込む。 $fname = "replyTLusers.txt"; $users = array(); if (file_exists($fname)) { $tmp = file($fname); foreach($tmp as $u) { $users[] = trim($u); } } //■■特定の人には別パターン■■ $userName = (string)$tweet->user->screen_name; switch(true){ case stristr($userName, "bot")://botと名のつくアカウント名に対して $replyPatternFile = "bot_pattern.php";//bot_pattern.phpを適用する $this->_replyPatternData[$replyPatternFile] = $this->readPatternFile($replyPatternFile); break; case in_array($userName, $users): echo " $userName - 特定ユーザ用反応 $text<br />"; $replyPatternFile = "xxx_pattern.php"; //xxx_pattern.phpを適用する $this->_replyPatternData[$replyPatternFile] = $this->readPatternFile($replyPatternFile); break; default://それ以外 echo " $userName - デフォルト反応 $text<br />"; $replyPatternFile = $org_repfile; //デフォルトのパターンファイル名 } //==================== //==================== //通常の@でリプライを返すパターンファイルに以下を追加。台詞などは適時変更OK。[[NOREPTL]] と [[REPTL]] が入っていることが必要。 "話し?かけないで" => array( "[[NOREPTL]]{name}さんにたくさん話しかけるのをやめます。", ), "話し?かけて" => array( "[[REPTL]]{name}さんにたくさん話しかけます。", ),
//php //通常のフォローユーザ、特定のユーザ、Bot、ごとにタイムライン反応用パターンファイルを変えるサンプルです。 //Bot宛に決まった台詞で話しかけることで特定のユーザリストに追加されます。 //タイムライン反応を作成するときに、特定のユーザリストを見て、反応ファイルを変更します。 //動作保証はしません //EasyBotter 本体 //==================== //function makeReplyTweets //冒頭($replyTweets = array(); のあとあたり)に以下の2行を追加 $aryAdduser = array(); $aryDeluser = array(); //「if(empty($status) || $status == "[[END]]"){」の前に以下を追加 //タイムライン反応するユーザリストに追加 if (stristr($status, "[[REPTL]]")) { $user = (string)$reply->user->screen_name; $aryAdduser[] = $user; $status = str_replace("[[REPTL]]", "", $status); } //タイムライン反応するユーザリストから削除 if (stristr($status, "[[NOREPTL]]")) { $aryDeluser[] = (string)$reply->user->screen_name; $status = str_replace("[[NOREPTL]]", "", $status); } //「return $replyTweets;」の前に以下を追加 //-------------------- //タイムライン反応ユーザのファイルへの追加と削除 $userfname = "replyTLusers.txt"; if (count($aryAdduser) > 0 || count($aryDeluser) > 0) { if (file_exists($userfname) == false) { touch ($userfname); chmod($userfname, 606); } $buf = file($userfname); $fp = fopen($userfname, "a+"); flock($fp, LOCK_EX); $users = array(); foreach($buf as $u) { $u = trim($u); array_push($users, $u); } //追加 $users = array_merge($users, $aryAdduser); $users = array_unique($users); //削除 foreach ($aryDeluser as $u) { for ($i = 0; i < count($users); $i++) { if (strcmp($users[$i], $u) == 0) { unset($users[$i]); break; } } } //ファイルへの書き込み ftruncate($fp, 0); foreach ($users as $u) { fputs($fp, $u."\n"); } fclose($fp); } //-------------------- //==================== //makeReplyTimelineTweets //「$replyTweets = array();」の前に以下を追加する $org_repfile = $replyPatternFile; //デフォルトのファイル名を保管 //「//リプライパターンと照合」の前に以下を追加する //ユーザリストを読み込む。 $fname = "replyTLusers.txt"; $users = array(); if (file_exists($fname)) { $tmp = file($fname); foreach($tmp as $u) { $users[] = trim($u); } } //■■特定の人には別パターン■■ $userName = (string)$tweet->user->screen_name; switch(true){ case stristr($userName, "bot")://botと名のつくアカウント名に対して $replyPatternFile = "bot_pattern.php";//bot_pattern.phpを適用する $this->_replyPatternData[$replyPatternFile] = $this->readPatternFile($replyPatternFile); break; case in_array($userName, $users): echo " $userName - 特定ユーザ用反応 $text<br />"; $replyPatternFile = "xxx_pattern.php"; //xxx_pattern.phpを適用する $this->_replyPatternData[$replyPatternFile] = $this->readPatternFile($replyPatternFile); break; default://それ以外 echo " $userName - デフォルト反応 $text<br />"; $replyPatternFile = $org_repfile; //デフォルトのパターンファイル名 } //==================== //==================== //通常の@でリプライを返すパターンファイルに以下を追加。台詞などは適時変更OK。[[NOREPTL]] と [[REPTL]] が入っていることが必要。 "話し?かけないで" => array( "[[NOREPTL]]{name}さんにたくさん話しかけるのをやめます。", ), "話し?かけて" => array( "[[REPTL]]{name}さんにたくさん話しかけます。", ),

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー