このたび、プログラミング勉強もかねて簡単なtwitterbotを作ってみたので、その仕様とソースを紹介しておきます。作りが甘いので、誤動作・暴走などするかもしれません。
脆弱性やまずいところがあったら、どうか教えてください。
何か
@koedamebotをインターフェイスとして利用しています。実際の動作は、xrea+のcronジョブで回しています。スクリプトはphpを利用しています。cronジョブのために簡単なshellスクリプトを書きました。DBと連動させるのが面倒だったので、ファイルシステムでログを取っています。
すでにわかっている不具合としてあげられるのが、システムログしか取っていないので、DMを消されると誰が投げたツイートかわからなくなるという点が上げられます。犯罪予告など怪しいDMを投げないよう、お願いします(twitter側で何らかのログが取られている可能性が十分考えられますが)。
[important]システムログすら残さない仕様になりました。もう、私ですら誰のツイートか判別できません。[/important]
アピールポイント
前口上
皆さん、twitterは自由だと言われてサインインしたはずです。しかし、現状はどうでしょうか。リアル繋がりでTLを晒している以上、自分の体面もあります。皆さんは、真に自由なツイートができていますか? それらに嫌気が差して副アカウントを持っている方さえも居るでしょう。
@koedamebotは、真に自由なtwitterライフをお届けします。
現状のtwitter
- 変態ツイートを思いついたのに、こんなツイートをしたら人間性を疑われてしまう……。
- とにかくこのイライラする気持ちをどこかに吐き出したい、叫びたい。
- followerの皆さんのTLを汚したくない。
- どうでもいい寒いダジャレを思いついてしまった……。
- とにかく悪態をつきたい気分だ。
……などなど、いろいろあるかと思います。
@koedamebotは広大なツイートの海に、メッセージの入った小瓶をひっそりと流すシステムです。
ネーミングについて
ダーティ(汚い・不潔)な場所になると予想されるので、「肥溜め」です。
いろいろなユーザの声(ツイート)の溜まり場なので、「声溜め」です。
システムの仕様
botにフォローされるには?
mentionを送るか、followしてください。botを効果的に利用するにはbotからfollowされることが必須ですが、あなたがbotをfollowする必要性は必ずしもありません。
毎時0分にmentionとfollowerをチェックし、botがfollowしていないユーザをfollowします。つまり、1時間ごとにfollowスクリプトが動作しているということです。
[note]mentionとは、@koedamebotを含んだツイートのことです。[/note]
[important]クロール時間が変わりました。10分ごと、分の1の位が0の時に動作します。サーバにかける負担が、本当に微小だとわかったためです。それに乗じて、DMのクロール周期も変わりました。[/important]
botに吐き出すには?
DMを送ってください。送る相手からフォローされていることが、DMを送る条件となっています(twitterの仕様です)。そのため、前項で説明した方法で、botにfollowされてください。
毎時10分/30分/50分(20分おき)にDMをチェックし、その内容をツイートします。その際、DMの送り主に関する情報が一切付加されません。これによって、真に自由なツイートライフを送れるわけです。
[important]クロール時間が変更されました。分の1の位が5のとき(10分ごと)に巡回します。[/important]
開発者によるDM閲覧について
何か大変なことが起こるなどした以外(単純な興味などは論外)で、botに送られてきたDMを閲覧することはありません。安心して、開発者を罵倒するDMを送ってください。
[warning]@koedamebotは開発中です。調整の段階で、どうしてもログが目に入ってしまうことがあるかもしれません。そういうときは、寝たら忘れることを誓います。[/warning]
[important]送られてきたDMは、その内容をツイートすると同時に破棄されます。そのため、誰のツイートか、私ですら把握できなくなりました。より使いやすくなると考えられますが、悪用しないようお願いします。[/important]
何はともあれ
スクリプトについて
ソースコード
安定動作するか様子を見ている状況なので、しばらくお待ちください。
どうなるかなーどうなるかなー安定して動くといいなぁー
プロフィール画像について
@magnesium1616さんに、「グルグルな感じ!」というアバウトなイメージを伝えたら、十数分のInkscape操作で描いてくれました。感謝。