俺得bot

既存の相棒・神戸尊botがいますが、どうしても1つイケメンbotが欲しくて…
作ってしまいました。
超俺得です。


私が発想の真似をしたため、既存様にご迷惑をかけないようにとロック中。


おためしTwilog
http://twilog.org/t_kanbe
ここを見れば12月7日までに増えたワードの反応が見れます。

神戸君が好きで、俺得(反応ワードと定期発言の種類を増やすぐらいでマッタリ進化したい)
でよければフォローして頂いても構いません。
http://twitter.com/t_kanbe

非公式です。全然関係ないです。
激しくイメージを壊します。ご注意ください。


度を超えた発言を神戸君に投げかけるのを見つけた場合
予告もなしにブロックする可能性があります。
ご了承ください。

バレンタインワード
バレンタイン、チョコ、ちょうだい、欲しい、くれ、あげるでなんかしら物をくれます。
チョコはありません。

俺得反応ワードメモ

おはよう、おはようのキス・ちゅっ
おやすみ、おやすみのキス・ちゅっ
こんにちは・こんばんは

神戸プレゼンツ罪名コーナー New!
内容はウィキったりいろいろ取ってきた。
本当にある罪名だよ!
現在55この罪名搭載!

悩みを聞いてくれるようになりました。
アドバイスはできません。
ただ聞いてくれるだけです。
悩み聞いて、なやみ聞いて、愚痴聞いて、落ち込んでるから聞いて
と書いて聞いて貰いましょう。
悩みや愚痴の内容には必ず「愚痴」とか[悩み]などで宣言してください。
相づちをしてくれます。
(入れないと日本語わからないなど、冷たい言葉がリプライされる可能性があります)
悩みの内容が終わったら、
悩み以上、愚痴以上、悩み以上を入れて下さい。

お腹空いた・はらへ・お腹すいた・お腹すいた
ありがとう(フォロー・罵り・通常の3種)
頭、腰、膝、目、腹のどこかが痛い時に
好き
もふもふ・モフモフ
(^ヮ^Ξ^ヮ^)
ぎゅっ・ハグ
ちゅっ・キス
行って・いって・行く
ただいま・帰・おかえり
おっさん・おじさん
ノーパン
パンツ(くれ・欲しい・欲しい・ちょうだい・ください)
神戸様
疲れ・つかれ
ぶっかけ(水・ドロリッチ・通常の3種)
あげる(水・ミネラルウォーター・ミネラルウォーター・眼鏡)
つ「」・つ[](水・ミネラルウォーター・ミネラルウォーター・眼鏡)
なでなで
占い(ルーン占い・タロット・適当占いの3種。占いだけだと適当占いになる)
罵り
くすぐる・こちょこちょ・こしょこしょ
つんつん・ツンツン
かわいい(はいはい・通常の2種)
かっこいい(はいはい・通常の2種)
ごめん
ぱんつバリバリ
バリバリ
支払いは
やめて
ポーターの財布
抱いて
初めまして
無視
バイバイ
呼んでみただけ・呼んだだけ
呼んだ
寒い
誕生日祝って
wwwww
いただき・頂き
ごはん・昼ごはん・ご飯
はぁはぁ
褒めて
ポッキーゲーム・━一
ビンタ
ペロペロ
エグザイル
結婚
死体
温泉
大丈夫
神戸
神戸きゅん
ソン
そんきゅん

尊きゅん
紅茶・コーヒー(くれ・欲しい・欲しい・ちょうだい・ください)
死体
温泉
ハムスター
電車・鉄道
お兄ちゃん
癒して

もういい
逮捕して
ご飯くわせろ・ご飯食わせろ・ご飯食べたい
頑張れ
変装(してる?・ばれたの2種)
泣け
許してあげる
許さない
休め
酷い
なぜわかった
ばれた(紅茶盗みばれる・ばれる?)
プギャー
バカ
><
逃げて
>ω<
たーけたーけ・ふにゃん(某ふにゃふにゃガムの歌を歌う)
ソンきゅん
かまし
紅茶盗んだのばれた?・紅茶盗ったのばれたね。
ざまぁ
まざぁ
騙されてる
怒ってる?、怒るな
おじ様
変態
暇か?
サーセン
あああとかいいいとかぅぅぅとかの無駄叫びに反応(例:うわあああああ)
照れてやんのとか照れてるウフフなど
眼鏡(みっちーネタ)

昔話・考古学・八雲(八雲ネタちょろり。間接的中の人が好きだから)
独身貴族刑事
杉下さんとか右京さんと入れると答えてくれますが、9割杉下さんはいません。


あけおめ、明けましておめでとう、あけましておめでとう
お年玉(くれ、ちょうだい、欲しい)

大河内(ピルイーター)と話している想定で自演会話



一人称は「俺・僕」です。
結構俺率を多くしたのですが、出るのが僕が多いです

ほとんどカナダさんから引用してきた。


ルーン占い参考
http://homepage2.nifty.com/musou-ann/Rune/Rune.HTM
http://homepage1.nifty.com/shinryokukan/pagan/rune/r-index.htm


タロット結果参考
http://www2.plala.or.jp/mikarin/uranai/tarot/#%E5%A4%A7%E3%82%A2%E3%83%AB%E3%82%AB%E3%83%8A
大アルカナだけです。


今後の予定
既存様に迷惑かけない。
まったり反応語増やしたい。

自演乙

定期投げかけソース

< ?php

include_once 'Twitter.phpフルパス';

        $now_g = date('G');
	$now_i = date('i');

$a0=array("@ca_nada なあクマ吉さんなんで僕は目立たないんだい?",
"@ca_nada 今日も奴に何も言えなかったよ…",
"@ca_nada なあクマ三郎さんなんで僕はこんなにも目立たないのかな?",
"@ca_nada 今日も奴に何も言えなかったよ…",
"@ca_nada なあクマ三郎さんなんで僕はこんなにも目立たないのかな?",
"@ca_nada なあクマ吉さんなんで僕は目立たないんだい?",);

	
		//Service_Twitter設定
	require_once "Twitter.phpフルパス"; 
	
	$user = 'ca_nada';
	$pass = 'パスワード';
	$st =& new Services_Twitter($user,$pass);

		$key = array_rand($a0);
		$post = $a0[$key];

	if(! $st->setUpdate($post) ){
		die('ERROR');
	}


//ここから
$st->setCacheDir(dirname(__FILE__).'/cache/');
$st->enableModifiedCheck(); 

//Services_JSONを読み込む
require_once "JSON.phpのフルパス";
//Services_JSONインスタンスを取得
$json = new Services_JSON();
//リプライの取得とデコード
$at = $json->decode($st->getReplies());

var_dump($at);
//ここまではいらないので無視してください。

?>

回したら発言するソースなので、cronで発言させたい時間に設定してあげてください。


自演リプライ

< ?php


$username = "ca_nada";
$password = "ぱすわーど";
$filename = "data3.txtのフルパス(reply.phpのtxtファイルとは別)";


$host = "http://twitter.com/statuses/mentions.xml"; //返信一覧
$fp = @fopen($filename,'rb') or die("ファイルが開けません");
flock($fp, LOCK_EX);
$line = fgets($fp, 64);
fclose($fp);


if(!empty($line)){
$last_id=$line;
$host .="?since_id=".$last_id;
}


else{
$host .="?count=1";
}


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $host);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);

$result = curl_exec($ch);
curl_close($ch);
$XML = simplexml_load_string($result);
$i = count($XML)-1;
$j = 0;

while($i >= $j) {
$var = $XML->status[$i]->text;
$com = ereg_replace("\@$username", "", $var);
$reply_name = $XML->status[$i]->user->screen_name;
$name = $XML->status[$i]->user->name;
$message = serif($reply_name,$name,$com);
$id = $XML->status[$i]->id;
tweet($message ,$username,$password,$id);
$i--;
}

$string = $XML->status[0]->id;
if(!empty($string)){
$dat = (string)$string;
file_put_contents($filename,$dat,LOCK_EX);
}

function serif($reply_name,$name,$com){
$reply_name = "@$reply_name";

if(preg_match("/ca_nada/u", $reply_name)){

if(stristr($com, "クマ吉さん何で")){
$return =$reply_name." "."誰?";
}

else if(stristr($com, "今日も奴に")){
$return =$reply_name." "."誰?";
}

else if(stristr($com, "クマ三郎さんなんで")){
$return =$reply_name." "."ン?誰?";
}

else if(stristr($com, "ン?誰?")){
$return =$reply_name." "."君の飼い主のカナダだよ";
}

else if(stristr($com, "誰?")){
$return =$reply_name." "."カナダだよ!";
}

else if(stristr($com, "君の飼い主")){
$return =$reply_name." "."オ前カナダッテワカリズライ カナダッポイ見タ目ニシロ";
}

else if(stristr($com, "カナダッテワカリ")){
$return =$reply_name." "."そっか!顔が駄目なら別の部分でアピールすればいいんだ!";
}
return $return;
}
}


function tweet($message,$username,$password,$id)
{
$message =urlencode($message);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://twitter.com/statuses/update.xml');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,  'status='.$message.'&in_reply_to_status_id='.$id);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
$buffer = curl_exec($ch);
curl_close($ch);
}

var_dump($XML);//あった方が見やすいけど、気になる人は消してもいい。

?>

私はこれで自演乙会話をしています。
cronの機嫌が良ければ、ちゃんと会話します。
今のところ、これでカナダさん以外のリプははじくことができています。
reply.phpに自演する垢をはじく設定をしてくださいね。(この場合はca_nadaです)
2人で1つのアカウントを持っている設定のbotさんで「私も自演乙したいです」
という人の参考になれば嬉しいです。< ?phpと離してやらないと2つのソースがくっついちまうので、わざと離しました。
コピペするときは、くっつけてやってください。

なんとかかんとか

たくさんの質問のコメントありがとうございます。
平日は返答が遅くなってしまうので、大変申し訳ありません。
今後はいろいろあってもっと遅くなってしまう可能性があります…


のんびり待っていただける方は、お待ちいただけると嬉しいです。
待ちきれねぇ!!という方は、昨日紹介させていただいた

http://pro10.sakura.ne.jp/tree/
Twitterbot掲示

に質問をしに行ってみてはいかがでしょうか。


あと、最近ここから来てくださる人がいるみたいです。

http://wiki.15cc.net/index.php?Twitter%20Bot%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9%E3%81%BE%E3%81%A8%E3%82%81

ウィキ作成者様、ここを載せていただきありがとうございます。
大変参考になるのでご覧ください。


では、失礼します。

カナダ天気予報一覧

@ca_nada 今日の大阪の天気
と言うように

@ca_nada 今日or明日+地名+天気

とリプライしてください。



対応地名


〜福島〜
会津(今日・明日)
郡山(今日・明日)
浜通り(今日・明日)


〜大阪〜
大阪(今日・明日)


〜埼玉〜
埼玉南部(今日・明日)
埼玉北部(今日・明日)
秩父地方(今日・明日)


〜静岡〜
静岡中部(今日・明日)
静岡伊豆(今日・明日)
静岡東部(今日・明日)
静岡西部(今日・明日)


できるだけ、全国天気予報で出てこないところを今後加えたいなと
思っております。
言われたいよね、自分家の天気予報。
加えるスピードは遅いかもしれませんが、頑張ります。



現在:安定せずかなり調子が悪いです…

会話ソース作りメモ

bot同士で2〜3回会話するものを作りたい場合はbotに反応しないソースと、bot用のリプライソースを作るのが楽


if(preg_match("/ca_nada/u", $reply_name)){
if(stristr($com, "こんにちは")){
$return =$reply_name." マシューさん、こんにちは〜";
}
else if(stristr($com, "またね")){
$return =$reply_name." バイバイ!";
}
}


if(preg_match("/ca_nada/u", $reply_name)){
if(preg_match("/マシュー/u", $name)){
if(stristr($com, "こんにちは")){
$return =$reply_name." マシューさん、こんにちは〜";
}
else if(stristr($com, "またね")){
$return =$reply_name." バイバイ!";
}
}
}


上のソースがユーザー名のみマッチさせるもの、
下のソースがユーザー名+スクリーンネームをマッチさせるもの


if(preg_match("/ca_nada/u", $reply_name)){

if(stristr($reply_name, "ca_nada")){
にしても同じ結果になる

めもめも