cookies.txt      .scr

ただのテキストファイルのようだ

TSG slackbot sushibot

てぃーえすじー すらっくぼっと すしぼっと (575)

f:id:cookie-s:20171204164442p:plain

TSG advent calendar 5日目です。
adventar.org
hakatashiさんがbotの流れを作ろうとしている気がするので、書くことにしました。sushi botというbotを作りました。たった36行です。

ソース

「すし」「スシ」「寿司」を含むような寿司発言に対して「🍣:sushi:🍣」 reactionをつけます。
これによって、みんな寿司が食べたくなり、日本の経済がよくなる効果が期待できます。

こういうのをつくると、くろごま氏が「スシ」という文を投稿してきて、『スシにも対応しろ』と圧力をかけてきます。
対応すると、くろごま氏が「すシ」などを投稿してきます。
対応すると、くろごま氏が「壽司」などを投稿してきます。
対応すると、くろごま氏が「鮨」などを投稿してきます。

結局、

   rtext = rtext.
            replace(/鮨/g, 'すし').
            replace(/([Ss][Uu]|[Zz][Uu]|ス|ズ|ず|寿|壽)/g, 'す').
            replace(/([Ss][Hh]?[Ii]|[Cc][Ii]|し|シ|司)/g, 'し');

とnormalizeしてから「すし」を含むものを寿司発言としました。
当然、逗子は寿司発言ではありません。




さらに、同じような戦略で実装できる追加機能として、擬akouryy発見機能もついています。
akouryy氏のつづりはなかなかむずかしいので、間違える人がよくいるとかいないとか。
そのため、擬akouryyを発見し、矯正するために、reactionをつきます。

擬akouryy発言とは、以下のnormalizeを施した後、akouryyが含まれるものです。

   rtext = rtext.
            replace(/akouryyy/g, 'akkoury').
            replace(/akouryy/g, '').
            replace(/kk/g, 'k').
            replace(/rr/g, 'r').
            replace(/y/g, 'yy');

雑実装ですね。



ついでに、僕が凍結された頃、さらなる凍結者を出さないために、「殺」「死」発見、警告機能もついています。
これのお陰で、今のところ僕を除いて凍結者はでていません。
f:id:cookie-s:20171204164746p:plain


ところで今気づいたんですが、/[Zz]/とかって/z/iでよくないですか。