東方Projectのキャラクター「十六夜咲夜」のツイッターbotです。
SakuyaBotは、ゲーム「東方Project」シリーズに登場するキャラクター、「十六夜咲夜」を模したツイッターBOTです。
botをフォローをすると自動でフォローした人をリフォロー(フォロー返し)を行います。(フォロワー稼ぎ目的のアカウント対策のため、リフォローには一定の条件があります。)
botのフォローを解除すると自動でbotからのフォローも解除します。
Botに対してリプライを送ると、リプライに含まれる語句に応じて何かしらの反応が返ってくることがあります。
「紅茶」とリプライを送ると今日の紅茶を提供します。咲夜さんのチョイスは変わっているので、ちょっと変わったお茶も出るかも知れません。
また、お茶に使った草花の花言葉も教えてくれます。咲夜さんのbotはためになるなぁ!(これもごく稀に、どこで覚えたのかわからない不思議な花言葉を返したりします。)
「献血」とリプライを送ると、咲夜さんが仕える吸血鬼のお嬢様方のごはんとなる血を捧げることができます。1人につき1日1回のみの制限があります。
「誕生日はX月X日」とリプライを送ることで、咲夜さんに誕生日を教えることができます。教えておくと、誕生日になった日の最初のツイートに対してお祝いのリプライを送ってくれます。
Botに対して送るリプライとその反応によって、フォローしている人に対する好感度が上下します。好感度が上がると反応してくれるリプライのパターンが充実していきます。
botに呼んでほしい呼び名を設定してあげることができます。リプライで「「(呼んでほしい呼び名)」って呼んで」と送ることで設定可能です。
置換文字列 :NAME:(現在設定しているツイッターのユーザ名に置き換えられる)が使用できます。
AWS(Amazon Web Service)上でEC2(クラウドサーバ)を立て、そこで稼働しています。お値段を抑えるためアメリカリージョンを使用し、スポットインスタンスで稼働しています。
BotはNode.jsで動いており、pm2でデーモン化させています。
以下のような感じのJSONファイル(リアクションプラグインと勝手に呼んでる)を記述し、botに読み込ませています。
{
trigger_word: "こんに?ち[はわ]" // トリガーワードを正規表現で指定
reply_patterns: [ // 返答するメッセージの配列。Botでこのパターンからランダムに1つ選択する。
"リプライ1",
"リプライ2",
"リプライ3"
],
requires: { // 反応する際の条件をここに記載する。
date_m: 12, // 特定の日付限定のリアクションはdate_mとdate_dにその日付を設定する。
date_d: 25,
min_lovelity: 20 // 必要な好感度の値(最小値)を設定する。
},
lovelity: 2 // 反応した際に上昇する好感度の数値を設定する。
},
{
trigger_word: "ほげほげ",
...