brain f*ckの実行結果を返すTwitterのbotを作りました
タイトルの通りBrainf*ckのコードを送りつけるとその実行結果の標準出力を返してくれるbotを作りました。使い方とか色々まとめておきます。
対応している命令
,(入力)以外の全ての命令に対応しております。,についてもいずれ対応する予定です。
基本の使い方
@brain_fxxk_bot [Brain f*ckのコード]
と送るとコードを実行してその結果をリプライで投げ返してくれます。
長いコードの入力
Brainf*ckだと140字程度では到底足りない場面が出て来ると思いますので複数ツイートをまとめて送るためのシステムがあります。
1.URL
ツイートのURLを貼るとそれがBrainf*ckのコードなら本文に書いた時と同様に処理します。複数のURLを貼った場合それらのコードを連結して処理します。本文にも何かしらコードが書かれていた場合その本文の後ろにURL先の内容を連結します。
出力
通常は出力された結果を返しますが、コード内に出力コマンドが含まれていなかった場合はメモリの内容を二桁の16進数で表した行列を140字いっぱい返します。
セキュリティ
Brainf*ckはRubyで書いたインタプリタ上で動きます。メモリはArray、標準出力はツイート用のただの文字列として処理されるのでp***a_runさんの様にシェルコマンドを打たれたりといったリスクはありません。コード内の無限ループについては処理した文字数が10万文字を超えた時点で強制的にストップするようになってます。
今後の展望
やっぱり入力が欲しいので入力コマンドが来たらリプライで尋ねるとかそういう仕組作りたいですね。作りたいですが、例えばループの中にこれがあった場合などかなり厄介めなことになりそうなのでその辺ちょっと練らないといけなさそうです。