てるてるブログ

てるてるぼうずの日常やらお勉強やら

BOT作成メモ – ID別にランダムリプライを変更

Posted on | 5月 29, 2012 | No Comments

bot同士で会話をさせる時とかに便利。

相手のIDを取得してswitch文かif文で分岐させます。

EasyBotter 非公式wiki「ID別設定」に詳しく載っているけどこれはリプライパターンファイルの変更だけ。
なので、同じようにランダムのリプライ(反応語句にない場合のリプ)もID別にしたい場合の改造法をメモ


EasyBotter 非公式wikiと同じように

if(empty($this->_replyPatternData[$replyPatternFile]) && !empty($replyPatternFile)){

の直後に

$org_randfile = $replyFile;//デフォルトのファイル名を保管

を挿入。
リプライパターンファイルのID別変更の追加場所の下辺りにある

//■■特定の人には別ランダムパターン■■
$userName = (string)$tweet->user->screen_name;
switch(true){
case $userName == "aaaa_bot"://aaaa_botというアカウント名に対して
$replyFile = "data_aaaa.txt";//data_aaaa.txtを適用する
$this->_replyPatternData[$replyFile] = $this->readPatternFile($replyFile);
break;
	$replyFile = $org_randfile;	//デフォルトのパターンファイル名
}//■■ここまで	

if文だと↓みたいになるのかな?

//■■特定の人には別パターン■■
$userName = (string)$reply->user->screen_name;
if(stristr($userName, "bot")){//botと名のつくアカウント名に対して
$replyFile = "bot_pattern.php";//bot_pattern.phpを適用する
$this->_replyPatternData[$replyFile] = $this->readPatternFile($replyFile);
}else if($userName == "aaaa" || $userName == "bbbb"){//aaaaとbbbbと言うアカウント名に対して
$replyFile = "ab_pattern.php";//ab_pattern.phpを適用する
$this->_replyPatternData[$replyFile] = $this->readPatternFile($replyFile);
}else{
       $replyFile = $org_randfile;	//デフォルトのパターンファイル名
}

環境やら改造具合にもよるんでしょうがうちのbotの場合どうもif文だとうまく動かなかったのでswitchを使いました。
私的には使いやすいというか分かりやすいのでif文の方がいいんですけど。
どっちがいいんとかあるんでしょうかね?それともどっちでもいいのか…?

参考サイトさん


Twitter API プログラミング
Twitter API プログラミング
辻村 浩
ワークスコーポレーション
トラックバックURL:

Comments

Leave a Reply





*

About

てるぼうず

てるてるぼうずな日常やらお勉強やら

旧ブログ倉庫 »
旧ブログの記事をお探しの方はこちらから

Admin