Mattermost EmojiGen

Mattermost 上でテキストから絵文字を作成できるプラグインを作ってた。
下記にスクリーンキャストを載せてる。

kaakaa/mattermost-emojigen: Creating custom emoji from slash command

2 年前ぐらいに作ってたやつだけど、久しぶりに引っ張り出してゴリゴリと。以前、何かができなくて諦めてた気がするけど、そんなに大きな問題なく手当て完了。

主な変更点は、今まで 2x2 の 4 文字までの絵文字しか作れなかったけど、上限文字数を撤廃。3x3 の圧倒的当事者意識的な絵文字も作れるようにした。とはいえ、視認性的に 3x3 でも厳しいぐらいだと思うけど。

Go 言語で文字画像作るのは、文字数と描画位置をどのように決めるかとの戦い。テストコード書いて画像出力させながらゴリゴリ調整。脳筋。

https://github.com/kaakaa/mattermost-emojigen/commit/21fd13ada28106ca1b7fcd3d0279cfef1e90ed11#diff-285e170643d9e80db83915466e06d2269d66a6cd59a3140e9db79cf5b6d7f834R47

No bot…

Mattermost プラグインでは、Plugin 起動時にプラグイン専用の Bot アカウントを作成して、その Bot からPlugin APIを叩かせて処理をやらせるというのが一般的だけど、悲しいことに絵文字登録 API がPlugin APIとして実装されていなかったので、プラグインの設定画面にアクセストークンを入力して、絵文字登録は REST API 経由で実行するという方式を取っている。

そのため、セットアップ手順がちょっと面倒臭くなっている。REST API のなかで、Plugin API に実装されているものとされていないものの違いがわからないんだよな。Contribute しますって言えばやらせてもらえるのかな。

CircleCI

久しぶりに CircleCI 回したらビルドがコケる。

...
Warning: Permanently added the RSA host key for IP address '140.82.112.3' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.
...

Deploy Key を作り直せば良かったらしい。

CircleCI で checkout 時に「fatal: Could not read from remote repository.」出る(長く放置していた時に発生) - nwtgck / Ryo Ota

GitHub Release

tag 打っても Release Job が走らない。

基本、Mattermost Plugin 関連のファイルは mattermost-plugin-starter-template から取って来るけど、このリポジトリにある Circle の設定ファイルには Release Job が定義されていなかった。

使い慣れた? Matterpoll の方の設定ファイルを持ってくる。

https://github.com/matterpoll/matterpoll/blob/master/.circleci/config.yml

mattermost/plugin-ciの Circle CI Orb は、最新バージョンv0.1.6まで進んでるんだけど、新しめのやつ(v0.1.2とかだったかな?)になると Mattermost 社の S3 インスタンスとかにアクセスしようとするので、認証情報設定しておかないとエラーになるのよね。なので一般コントリビュータはv0.1.0を使うしかない(と思う)。 ここら辺、ちゃんとドキュメント化されてないから手探りなのよね。

まとめ

Go で画像生成できるのが面白くて作り始めた気がするけど、まぁとりあえず形にはなったかな。ちゃんとテスト書いてないし、ちょっと操作性が微妙な気はするけど。

言葉の絵文字が流行るのは日本的、というか漢字文化だよなぁ。

comments powered by Disqus