をとこもすなるSlackといふものを をむなもしてみんとてするなり
世間ではSlackを活用したChatOpsという流れもあるなかで、Skypeすら全面的に禁止されている環境ではSlackなど望むことすらできなかった。 とはいえ、Slackは個人でも使えるので自分でやってみることにした。
単なるチャットは昔から使ってきたので、botを作って理解を深めようと思い、電卓botを作ってみた。
利用するライブラリ
Slackのbot周りは slackbot、数式周りはSymPyを採用した。
既存のライブラリを使っただけである。
実装
実装の本質部分は以下のとおりである。 時間があればGitHubにあげておきたい。
from slackbot.bot import respond_to from slackbot.bot import listen_to from sympy.parsing.sympy_parser import parse_expr @listen_to('\d* *(\+|-|/|\*|\*\*) *\d*') def simple_calculator(message, statement): message.reply("{} = {}".format(message.body['text'], str(parse_expr(message.body['text'])))) @respond_to('.*') def sympy_respond(message): message.reply(str(parse_expr(message.body['text'])))
使用例
二項演算を入力するか、botへSymPy形式で数式を渡すとリプライとして演算結果が返される。 100!も簡単に計算できる。
今後
二項演算のバリエーションを増やしていきたい。 また、想定していない動きもするので暇があれば追加していきたい。
ちなみに、これは第64回 Python mini-Hack-a-thonの成果である。