🐹

SlackBot「はむ」を支える技術

2024/09/10に公開

某所の Slack に住まう Slackbot「はむ」に実装した技術を紹介してみます。
タイトルは ↓ をオマージュさせていただきました。
https://zenn.dev/dividebyzero/articles/630e518bb5175d

某所のメンバーは技術的な集団ではなく仲良しメンバーなので「開発に使うあれが欲しい」みたいなものはまったくないのですが「はむ」の特徴的な機能を羅列してみたら「気象情報botじゃねーか」という内容になってしまいました……こんなはずでは……

Obsolete にした機能も置いておきますので、皆様の開発のヒントになれば幸いです。

※「はむ」は IRC bot の名前でした

いずれも執筆時(2024/09/10)現在の機能です

雨雲レーダー

元ネタはこれです。

上記を実装したときの技術は使えなくなっていて、いろいろがんばった結果
『雨雲レーダーの OGP og:image が使える』ことに気がつきました。
この og:image を切り出しています。
https://github.com/sharl/slackbotapp/blob/main/modules/message/amehamu.py#L60-L63

※いろいろアレなのでそのうちアレされるかもしれません。

東京アメッシュ

みんな大好き東京アメッシュ

アメダス

アメダスから JSON を取得してふにふに加工しています。

気温・湿度・降水量などのグラフ

これもアメダスから JSON を取得してふにふにしています。

昔は動いていた機能(だいたい飽きたやつ)

ダジャレ判定


こちらを使用して発言がダジャレ判定されたら審議スタンプを押していました。
https://github.com/kurehajime/dajarep

五七五判定

ゲンシジン

ほげほげ画像

いらすとやからいろいろ引っ張ってくる系

ExcelAPI 系

https://x.com/sharlm/status/1564098910351945728

ChatGPT / OpenAI / Gemma などなど

API を作って bot から叩いていました。

Stable Diffusion / Waifu Diffusion

これも API を作って bot から叩いていました。
https://github.com/sharl/stable-diffusion-docker/blob/main/docker-entrypoint.py#L127-L154

実装例はこちら

https://github.com/sharl/slackbotapp

Discussion