AbyssLukeのガイドライン(Maybe archived)

はてダから移転。多分更新しないかもしれない。

制作者が解説する@muskabot(Twitterからのリンク用)

※最終更新 2009/12/02 06:42
@muskabot

ムスカbot」は、天空の城ラピュタでおなじみ、「ロムスカ・パロ・ウル・ラピュタ」(keyword:ムスカ)のbotです。
Twitter上で稼働しています(TwitterIDはmuskabotです)。
Wassr版は7/31を持って終了しました。アカウントは削除済みです。

基本動作

  • @bombtterからの爆発情報を元に、「見ろ!○○がゴミのようだ!」などと発言します。
  • 00分/30分に時報動作を行います。
  • Replyを受けた場合、それに反応することがあります。

既知の不具合など

  • 爆発してから1分以上経つ/Replyに反応する文字列を入れたつもりなのに@muskabotの反応がない気がする。
    • @muskabotはレンタルサーバー上で動いています。
    • CRONで1分おきに動かしたいものですが、「ジョブの動作間隔は1時間以上間隔あけろ!」というのが現実です。
    • そのため管理するWebサイトからimgタグで呼び出して、模擬CRONみたいなことをしています。
    • なので、仕様です。反応の遅さはWebサイトのアクセス数に影響するかもしれません。
    • もしかするとレンタルサーバーが落ちている可能性もあります。
    • またはプログラムのバグか。TwitterAPIがおかしいか。
    • 自宅サーバーや専用サーバーで動かしてみたいもんです。
    • 反応までまったりお待ちください。
  • 爆発が連続して2回行われる場合があるが、その際最新の1件が優先され、古いものは取りこぼすことがある。
    • 最近bombtterの仕様が変わったのかは知りませんが爆発待ち数が多いと@muskabotが処理する前に次の爆破が実行される場合があります。
    • @muskabotのプログラムの仕様です。大佐も新しい物しか見ていないようです。
    • 改善はできますがプログラム構造が変わるので面倒→処理が滞っていると連続POSTしまくりだしやりたくない現状…
  • Replyに反応する文字列が少ない気がする/なんかReplyのつじつまがあわない。
    • 仕様です。
    • Replyに含まれる文字の中に反応する文字列があるか、部分一致で処理させています。また反応文字列の優先度も独断で設定しています。そのためつじつまが合わないことがあります。
  • @muskabotからのReplyがうるさい。
    • TwitterのReply仕様変更に伴い、例えば「. @abyssluke に伝えろ。予定通り @bombtter を爆破したと。」のようなPOSTが投稿された場合、@abysslukeと@bombtterのReplyタブにそのPOSTが入るようになりました。
    • 自分のPOSTの中に「@muskabot」が含まれていると反応する可能性があります。口は災いの(ry
    • とりあえず、上のような場合、これはTwitterの仕様です。
    • @muskabotがフォローしている人以外は@を@にするなどしたいですが、プログラム構造が(ry
      • →(2009/06/25) @は@に置換するようにしました。これで自ら@muskabotに@してReply処理された場合を除きReply飛ばないはず。
    • それ以外はムスカの仕様です。
      • ただし、確率動作にさせる予定はあります。8回Replyして2回Replyしないなど。
  • ReTweet等に反応してしまう
    • 上に書かれているTwitterの仕様です。
    • が、2009/04/29から頭に「RT @」、「ReTweet @」、「RT:」が付くReplyに関しては反応しないようになりました。ただし、バルスを除く。
    • ※「ムスカwwwwww RT @muskabot 〜」等、頭にReTweetの識別子が付いていない場合は今の所反応します。ご注意ください。
  • @muskabot自体がうるさい。
    • 仕様です。
  • @muskabotがfollow/remove返ししてこない。
    • (2009/06/30追記)「@muskabot followして」(「@muskabot followしてください」など、「@muskabot followして」がreplyの最初に来ていればOK。なので「@muskabot followしてこないでください」と言われてもfollowします)とreplyすると自動的に@muskabotからfollowします。removeも同様に「@muskabot removeして」でOKです。
      • もしかしたらOAuthへの変更以降、follow/remove処理コードを変えていないので正常に動いていない可能性(あとでなおします)。→なおしました。
      • 反応すると「@ユーザーID [R2FR*1-(F(ollow) or R(emove)))]〜」なReplyを送信します。
      • protectedな方は使えません。相互フォロー中のみ「@muskabot removeして」は可能ですが、removeされてしまうと「@muskabot followして」をしても反応しませんのでご注意ください。
    • @abysslukeが不定期的に外人やspamをチェック&ブロックしています。また上のfollowコマンドを行っていない場合のフォロー返しも同時に行っています(このような手動フォロー返しの場合は基準を設けているため、場合によってはフォロー返しを行わない可能性もあります)。
    • ちなみに、フォロー連絡のメールは切ってあります。
  • from APIじゃないけど?
    • 2009/07/28から、ほとんどの処理でOAuthに対応させました。そのためクライアント名は「Romuska Paro Ur Laputa」として投稿するようになりました。
    • 2009/08/31に、すべてOAuthに対応しました*2
  • @bombtterと@muskabotの爆発物が一致しない。
    • どうやら@bombtterの仕様変更により、@bombtter_rawで提供される情報は@bombtter_longで流れる情報も混ざっているようです。

いつかやりたいToDo

  • ReTweet等を無視する
  • Reply処理の確率での動作
  • コードを整理する(通信処理とかをclass化?)。
  • 他のbot/Webサービスから情報を得てPOSTする。
  • Reply処理の強化。
  • followingリストを取得して、フォローしている人以外のIDの@を@にする。
  • etc.

技術文書的な何か

基本編:d:id:abyssluke:20090419:1240128522
Reply反応文字列編:d:id:abyssluke:20090421:1240273283

thanks

制作者について

  • 制作者は@abysslukeです。
  • 何かありましたら@abyssluke宛にReplyなどで連絡ください。
  • Skypeはたまにログインしています。

*1:Reply To Follow/Removeの略

*2:00分時報を動かしているs87.xrea.com上での処理がある日からうまく動かなくなった事が30日に判明し、さくらのサーバーへ移転すると同時にOAuth対応したのは秘密