てるてるブログ

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

BOT作成メモ – 特定IDの呼び名を変更

Posted on | 4月 24, 2012 | 4 Comments

ニックネームを登録するような高機能ではないのですが、特定IDの呼び名を変更したい場合にちょろっと使う感じでメモ。

Easybotterでは{name}という文字列をリプライパターンに組み込むと相手のユーザーネームを呼んでくれます。
ユーザーネーム以外の名前で呼んで欲しい時などに便利。
BOT同士の名前呼びや管理人だけにはちょっと違う呼び方で…と言ったときに使えるのかな?
私的に改造しようとしたきっかけは、変な名前を付けてるフォロワーさん対策だったんですけどね(NGIDみたいなもの…?)。
サクッとブロックすればいいのかもだけどなかなか思い切れなくて(小心者だ…)。


Easybotter本体の改造になりますので改造される場合は自己責任でお願いします。

本体EasyBotter.phpの480行目あたり
//リプライの場合は相手のid、そうでなければfollowしているidからランダム
というコメントアウト文のあるあたりから

if(strpos($text,"{name}") !== FALSE){
 if(!empty($reply)){
   $text = str_replace("{name}",$reply->user->name,$text);
 }else{
  $randomTweet = $this->getRandomTweet();
    $text = str_replace("{name}",$randomTweet->user->name,$text);
 }
}

を探します。
ここを↓のように変更。

if(strpos($text,"{name}") !== FALSE){
 if(!empty($reply)){
  $userName_NG = (string)$reply->user->screen_name;
  if($userName_NG == "ユーザーID"){//変換するユーザーID
   $text = str_replace("{name}","変換後の名前",$text);
 }else{
  $text = str_replace("{name}",$reply->user->name,$text); }              
 }else{
  $randomTweet->user->screen_name;
    $userName_NG = $randomTweet = $this->getRandomTweet();
  if($userName_NG == "ユーザーID"){//変換するユーザーID
   $text = str_replace("{name}","変換後の名前",$text);
  }
 $text = str_replace("{name}",$randomTweet->user->name,$text);        
  }
}

このあたりはユーザーネームやID呼びをする際の改造で使いそう。
ユーザーネーム中の特定の文字を変換したりとかもできるかも。

ユーザーネーム中の半角@を全角の@に変換するパターンで↓。

if(strpos($text,"{name}") !== FALSE){
 if(!empty($reply)){
    $reply_name = str_replace("@","@",$reply->user->name);//アカウント名中の@を置換
   $text = str_replace("{name}",$reply_name,$text);
 }else{
  $randomTweet = $this->getRandomTweet();
  $reply_name = str_replace("@","@",$randomTweet->user->name);//アカウント名中の@を置換
    $text = str_replace("{name}",$reply_name,$text);
 }
}

もっといい方法もあるかもしれないけど一応これでいけたのでOKとしよう。

ま、色々対策とってもいたちごっこになりそうな気はするんだけどね。

トラックバックURL:

Comments

4 Responses to “BOT作成メモ – 特定IDの呼び名を変更”

トラックバック

Leave a Reply





*

About

てるぼうず

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

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

Admin