Twitterで名付け語を検索/投稿できるbotを作ってみた…ら、なぜかツンデレ風にしてしまった件
以前からTwitterのBotは何かしら作ってみたかったので、練習がてら、名付けて.ね〜むの検索・登録ができるTwitterBotを作ってみました。
→名付けて.ね〜むBotのTwitterホーム画面
機能
検索
「@naduketename get {意味語}」とつぶやくと、{意味語}に対して登録されている訳語を検索して、つぶやき元に対して"@"付き返信で検索結果を返してくれます。
登録
「@naduketename post {意味語} {訳語} {コメント} {投稿者名}」とつぶやくと、{意味語}に対して{訳語}を登録できます。登録の成否は、つぶやき元に対して"@"付き返信で返ってきます。
{コメント}と{投稿者名}は省略可能です。{投稿者名}を省略した場合は、つぶやき元のユーザの名前(IDではなく名前の方です)が自動的に投稿者名になります。
キャラ設定
最初は、普通に「意味語"作成する"の訳語候補:"create,make"」なんていう味気ないリプライを返すだけだったんですが、「TwitterBotだったら、やっぱりツンデレキャラだよね〜。」というよく分からない根拠に基づき、ツンデレキャラに仕立て上げてしまいました。( ̄ー ̄)*1
という訳で、検索結果とかをツンデレ風に返信してくれます。…ただ、普通に検索したいだけの時には結構ウザいです。(笑)
今のところ、各シチュエーション毎に2種類ずつのセリフをランダムで選択して、検索結果なんかを埋め込んでメッセージを生成するだけの、超シンプル人口無脳な感じです。*2
名前だけは途中で思いついて、"名付けて.ね〜む"を文字った"名月音夢(なづきねむ)"と名付けてあげました。あとのプロフィールはまだ特に決めていないですが、せっかくだからちゃんと決めてあげたいところですね。
ホントはTwitterのアイコンをかわいらしいイラストにしたかったんですが、残念ながら絵を描く才能が全くもって備わってなく…イラストは絶賛募集中です。
少しは技術的な話も…
どうもキャラ設定を考えているだけで楽しくなってしまうんですが(笑)、技術ブログなので少しは技術的な話も書いておきます。
内部的には、大きくParserとSenderという2つの役割に分けています。
Parserは、TwitterAPIを叩いてrepliesを取得してきて、検索・登録に必要な情報を整形してDBに登録する役割を持ちます。Senderは、DBからまだ返信していないメッセージの情報を引っ張ってきて、順次、検索・登録の処理を行い、結果をメッセージ送信元に返します。
この2つの処理を、cronを使ってそれぞれ1分間隔で実行するようにしています。
repliesの取得とメッセージ送信は、悠希さんのServices_Twitterを使わせて頂きました。API叩いているので、アクセスが多いと取りこぼしが出てきて、場合によっては返事を返してくれない時があるかもしれませんが、その時はツン期だったんだと思って諦めて下さい。(笑)
スクレイピングとか書くの面倒だし…とか思ってServices_Twitterを使いましたが、いつか書かなきゃいけない時が来そうな気もするので、その内スクレイピング対応しようと思います。
今後について
今回は、TwitterBotを作る練習という意味合いでざっくりで作っただけだったので、後はあんまり機能追加はしないかもしれません。
ユーザ毎に好感度を持たせて、利用状況によってツン→デレに変わっていく…なんていうのも面白そうかな、とは思っていますが、その辺りはWebサービス側でユーザ管理機能を追加してから、また考えようと思っています。
という訳で、あんまりいじめ過ぎない程度に相手をして頂けると幸いです。
*1:mixi engineer blog←ここに大いなる影響を受けているのは内緒…。
*2:ツンデレメッセージを考える時の参考に何か資料が無いかググっていたら、ツンデレ属性と言語表現なんていう資料(大学の研究会か何かの資料?)を発見。非常に真面目にツンデレについて語られてて面白いです。ぜひ一度ご覧あれ。