フォロワーの名前から特定の文字を取ってリプライ返す方法
■EasyBotter2.04betaの場合
まずEasyBotter.phpの下のあたりを探す
緑で囲ったあたりは最初は
$reply_name = (string)$tweet->user->screen_name);
となっていると思います。そこを
$reply_name = str_replace("抜きたい文字","",(string)$tweet->user->screen_name);
という風に、str_replace()で囲って下さい。例では(bot)と言う部分を削除したいので
$reply_name = str_replace("(bot)","",(string)$tweet->user->screen_name);
となってます。別の文字を削除したいならその文字を入れて下さい。
次にぐぐーっと下に下げてここを見つけます
初期では
if(!empty($reply)){
$text = str_replace("{name}",$reply->user->name,$text);
}else{
$randomTweet = $this->getRandomTweet();
$text = str_replace("{name}",$randomTweet->user->name,$text);
}
となっていると思いますが、そこを
$botname = str_replace("抜きたい文字","",$reply->user->name);
$text = str_replace("{name}",$botname,$text);
と
$botname = str_replace("抜きたい文字","",$randomTweet->user->name);
$text = str_replace("{name}",$botname,$text);
にそれぞれ書き換えて下さい。"抜きたい文字"は先程上で設定したものと同じもので
この場合、上で(bot)と設定したので、下も"(bot)"になってます
これでreply_pattern.phpで、いろはに(bot)という名前にしていた場合
{name}殿、ご機嫌麗しく…
とすると
いろはに殿、ご機嫌麗しく…
と返します
■EasyBotter1.42の場合
すごくブサイクな形なんですが、新たに{bname}というのを作りました
reply_random.phpの下の方にこの部分を探す
//idや名前を変換するというところの一番上に
$botname = ereg_replace("抜きたい文字","",$replies2[$i]["name"]);
$message = preg_replace("@{bname}@u",$botname,$message);
を足して下さい。例ではbotという字を抜く設定になってます。
これでreply_pattern.phpで、ほへとbotという名前にしていた場合
{bname}殿、今日も美しいですね
とすると
ほへと殿、今日も美しいですね
と返します。
実のところ、bot同士の会話なら、普通に最初に話しかける方がTLでまんまキャラ名を言って
返す方も○○(キャラ名)という風にしてもいいと思います。実際、そんなに複数のbotと会話すること
ないと思うので。あまり機会が無いので1つしか試してませんが、複数あるなら||(orの意味)で
区切ってやったらいいかなと思います。
一応、コピペモドキで出来るよう、関数説明などあまり深くは説明してないんですが
暴走したとき、ファイルを降ろしたり削除以外で自分で止められる程度には覚えてくれるといいなと思ってます