風柳メモ

ソフトウェア・プログラミング関連の覚書が中心

TwitBot Clubのランダム応答機能を充実!

本家の方がいろいろバージョンアップしていたので

http://twithook.appspot.com/botclub/(元記事はこちら)も
EasyBotter - プログラミングができなくても作れるTwitter botの作り方のバージョン1.2相当に近づくべく(笑)頑張ってみました。

バージョンアップ内容(お試し用botはこちら)

以下の改修はすべてランダム応答の場合のみに影響しますのでご注意を。

  1. 応答文に、{name}で相手の名前が、{id}で相手のID(screen_name)が、それぞれ埋めこめるようになりました。
  2. 応答文に、日付・時刻が埋めこめるようになりました(例:{year}{month}{day}{hour}{minute}分)。
  3. 特定の文字列に対して反応し、予め決めておいた応答候補(複数指定時はランダム)を返せるようになりました。ただし、手抜きなので、これらはJSONで指定しておく必要が有ります(苦笑)。

例えば、投稿文リスト欄

やぁ、{id}さん。
ども、{name}さん。
ポーン!{name}さんに、{hour}時{minute}分をお知らせしまーす。

のように入れておくと、bot宛に投稿があったとき、

やぁ、furyuteiさん。
ども、風柳さん。
ポーン!風柳さんに、6時23分をお知らせしまーす。

のような応答のいずれかがランダムで返ります。

一方、応答パターン欄にJSONで

{
"反応する文字列":["候補1","候補2",...,],
:
}

のような形で登録しておくと、"反応する文字列"が含まれる投稿がbot宛にあったとき、[〜]内の候補からランダムに選んで返します。

例えば、

{
"いろは":["いろは","にほへと","ちりぬるを","わかよたれそ","つねならむ","うひのおくやま","けふこへて","あさきゆめみし","えひもせすん",],

"占い":["{name}さん、大吉ですよ、すごい!","{name}さんは…中吉かな?","{name}さんは、小吉ですね。","{name}さんは、吉です。","{name}さん、凶みたいですよ、気をつけて!",],

"時報":["ただいま日本時間の{year}年{month}月{day}日 {hour}時{minute}分頃です…多分。",],
}

のようにパターンを登録した場合、

  1. bot宛の投稿に『いろは』が含まれる場合→上記『"いろは":["〜", ...]』の右側にあるいずれかの応答候補をランダムで返します。
  2. 同様に『占い』が含まれる場合→名前を含めて占い結果をランダムで返します。
  3. 同様に『時報』が含まれる場合→『ただいま日本時間の2009年10月22日 4時37分頃です…多分。』みたいに返します。
  4. パターンに当てはまらなければ、投稿文リスト欄に登録されている応答を返します。