手を加えさせていただきました

2009-08-08
のプログラムを少し変えさせてもらいました。
これをするとを「@_返答台詞」がなくなります。

@_返答台詞とは「@ 、構わん 続けろ」のような@の後ろに名前が入っていないものです。


$host = "http://twitter.com/statuses/mentions.xml?count=1"; //@返信一覧の最新一件

$host = "http://twitter.com/statuses/mentions.xml?count=2";

に変更する。

$var = $XML->status[0]->text;
$massage = ereg_replace("\@$username", "", $var);
$reply_name = $XML->status[0]->user->screen_name;
$reply_name = "@$reply_name";
$name = $XML->status[0]->user->name;

の下に

$var1 = $XML->status[1]->text;
$massage1 = ereg_replace("\@$username", "", $var1);

を加える。

$massage = $reply_name." "ここらへんは自分で考えてね!";

if(! empty($reply_name)){
$massage = $reply_name." "ここらへんは自分で考えてね!";
}

に変更。

//読み込んだ最新idが同じ場合はスルー、違う場合は相手への返信を投稿
if($dat != $s_name){
//投稿部分は前やったのと同じ
tweet($massage ,$username,$password);
//投稿と一緒に最新idをファイルに書き込み
file_put_contents($filename,$dat,LOCK_EX);
}

にif($var != $var1)を

if($dat != $s_name){
if($var != $var1){
tweet($massage ,$username,$password);
//投稿と一緒に最新idをファイルに書き込み
file_put_contents($filename,$dat,LOCK_EX);
}
}

というように書きこむ。


以下簡単な説明なので、すっとばしてもおkです。



1→2にしたことによってbot宛最新リプライ2件取得。

$var = $XML->status[0]->text;
$massage = ereg_replace("\@$username", "", $var);
$reply_name = $XML->status[0]->user->screen_name;
$reply_name = "$reply_name";
$name = $XML->status[0]->user->name;
//ここまでが1件目のリプライ部分

$var1 = $XML->status[1]->text;
//2件目のリプライ内容の部分
$massage1 = ereg_replace("\@$username", "", $var1); 
//とりあえず、書いてみた。いらないかも?


emptyを使って名前が空じゃない時にこのメッセージに決定するのようにしてます。
最初は名前がないので、これだけ加えればいいかなと加えたら、
今度は最後にリプライした人に勝手に何度もリプライするようになってしまいました。


if($var != $var1)は
もし、最新リプライ1件目の内容と2件目のリプライ内容が一緒ではない時
という意味です。