2021年4月13日火曜日

Jinja2 cli な kamidana の additonals として slack 拡張を書いてみた

 Jinja2 は python のテンプレートエンジンです。
そして kamidana は Jinja2 の CLI です。
今回はふと思い立って Jinja2 で API 叩いてそのレスポンスを加工したいなーと思い、その練習の1つとして slack API を叩いてみました。

kamidana には --additionals オプションがあり、 .py ファイルを指定するとフィルターなどを拡張することができます。
最初は自分で Jinja2 組み込みで cli 書こうと思ってたんですが、↓を読んで additionals が便利そうだったので、この構成にしました。
悩んだ末に自分で自分の使うツールを作った話 - Qiitaできたもの

https://github.com/srz-zumix/yurumikuji

Slack = ゆとり・ゆるみ
Jinja2 = 神社
kamidana = 神棚
ということで、「ゆるみくじ」という名前にしました。
(ゆるみくじは干支などの動物の形したおみくじとか、ちょっとかわいいおみくじのことを指すみたいです。知らんかった)

実装したのはユーザー・ユーザーグループの情報取得と検索フィルターです。
使い方はリポジトリの README を読んでもらうとして・・・
例えば以下のテンプレートファイルを kamidana で処理すると

{{ ("srz_zumix" | slack_user_id | slack_user_info).profile.image_512 }}
{{ ("srz_zumix" | slack_user_id | slack_user_profile).image_512 }}
{{ "srz_zumix" | slack_user_id | slack_user_presence }}

このようになります。

https://secure.gravatar.com/avatar/a7614593f3f6f46b73da348c89beba81.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-512.png
https://secure.gravatar.com/avatar/a7614593f3f6f46b73da348c89beba81.jpg?s=512&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0023-512.png
active
書いてみた感想

使ってみると何に使えるかわかんないけど面白い。
レスポンスをそのまま返してるだけだけど、 Jinja2 の基本的な書き方で必要なものにアクセスできるので可能性を感じました。

とりあえず、しょっちゅう変わる所属を Slack のカスタムフィールドから取ってきて、メール署名のテンプレートでも作ってみようと思います。
あとは、本当にやりたかったことも簡単にできそうなことがわかったので kamidana additionals でやろうと思います。

では。

0 件のコメント:

コメントを投稿