もぐてっく

人は1つ歳をとるたび、1ビットづつ大きくなれると信じてた。

Rubyプログラミング不要!mikutterでBotを作ろう

明けましておめでとうございます。

これは「あー正月ってテレビもつまんないしマジすることないよねー」カレンダー (なにそれ?)2日目の記事です。

今回は拙作プラグインmikutter-extract-fire-commandを使って、コードを一切書かずにTwitter Botを作る方法をご紹介したいと思います。

mikutter-extract-fire-commandについて

mikutter-extract-fire-commandは抽出タブの抽出結果にmikutterコマンドを適用するプラグインです。このプラグインを使うとPlaggerの様に他のWebサービスと連携を取ったり、特定のツイートに反応してちょっとしたマクロ処理が出来るようになります。

mikutter-extract-fire-commandの詳細は、過去に書いた記事を参照してもらえればと思います。

# またえっらい自画自賛だな当時の俺・・・。

定刻につぶやくBotを作ろう

さて、ここからが今回の本題です。
まずは一定時間ごとにメッセージをつぶやくシンプルなBotを作ってみましょう。

例として僕のTLで流しているマイクラサーバの宣伝Botをご紹介します。

(1) プラグインの導入
まず初めに、次のプラグインを導入します。

  • mikutter-extract-fire-command

前述の抽出タブの抽出結果にコマンドを適用するプラグインです。

  • mikutter-kopipe

あらかじめ定義したメッセージをツイートするコマンドが作れるプラグインです。

  • mikutter-datasource-clock

みくったーちゃんが時刻を教えてくれるプラグインです。

(2)投稿するメッセージを作成する。

プラグインの導入が終わったら、mikutter-kopipeに定期的につぶやきたいメッセージを登録していきます。
~/.mikutter/の下にkopipeディレクトリを作成して、下記のYAMLファイルを作成してください。

title: AQUA Craftの宣伝
text:
 - |
  Minecraftサーバ"AQUA Craft"やってます。

  araaraufufu.xyz
  マップ:http://araaraufufu.xyz

  シングルが寂しくなったくらいの人におすすめです。
  駅近未開拓地多数。自由に開拓してください!

ファイル名は拡張子が.yamlであれば任意です。
ここではkopipe_aqua_craft.yamlとでもしておきましょう。

一度mikutterを再起動して、右クリックメニューに「AQUA Craftの宣伝」が追加されていることを確認してください。

f:id:moguno:20150101233942p:plain

(3)抽出タブの設定

(a)データソース
1分周期で現在時刻をつぶやくデータソース「時計」を選択します。

f:id:moguno:20150101231309p:plain

(b)絞り込み条件
今回は1時間ごとに通知させたいので、毎時00分のメッセージのみを取り出します。

f:id:moguno:20150102004727p:plain

(c)適用するコマンド
さっき作った「AQUA Craftの宣伝」を適用させます。

f:id:moguno:20150101234052p:plain

これで毎時00分が来るたびに「AQUA Craftの宣伝」コマンドが実行され、宣伝メッセージが自動ツイートされます。時間を呟くだけの存在意義不明なデータソースが、Botのタイミング生成の要になっているところが面白いですね。

特定の言葉に反応するBotを作ろう

続いて、ホームタイムラインの特定のメッセージに反応する愉快なBotを作っていきます。
ここでは「あひる焼き」に反応して火に油を注ぐメッセージを返してみます。

(1)プラグインの導入

今回はmikutter-extract-fire-commandとmikutter-kopipeのみを利用します。

(2)投稿メッセージの作成

ここでもmikutter-kopipe用のメッセージを定義するのですが、mikutter-kopipeのサンプルにあひる焼きを応援するメッセージ(4種)をランダムにつぶやく奴があるので、今回はそれを使います。

~/.mikutter/の下にkopipeディレクトリを作成して、mikutter-kopipe/sample/kopipe_ahiru_yaki.yamlをコピーしてください。

(3)抽出タブの設定

(a)データソース
ホームタイムラインを選択します。

f:id:moguno:20150101233652p:plain

(b)絞り込み条件
次の条件を定義します。

本文に「あひる焼き」を含み、
自分の投稿でなく、
本文に自分の名前を含まない。(あひる焼くなプラグインのリプライを対象外にする)

f:id:moguno:20150101233704p:plain

(c)適用するコマンド
サンプルのあひるを焼く(ランダム返信)を適用させます。

f:id:moguno:20150101233719p:plain

これで、誰かが「あひる焼き」と呟くたびにいちいち茶々ツイートを嚙ますことができるようになります。
あひる焼きゲームよ永遠なれ!

おわりに

今回のBotやmikutterの薄い本 vol.7(もうすぐ通販も始まるよ!)に掲載の「SlideShareのスライドをはてなブックマークに転送する芸」など、mikutter-extract-fire-commandは様々な用途に応用が効く物と思います。
ぜひぜひ皆さんなりの面白い使い方を編み出してください!


では、本年もよろしくお願いします。