Edited at

Slackのemojiをドラッグ&ドロップで追加できるアプリをGolangで作った

2019/07/07追記 結構前からSlackの仕様が変更されて動作しない状態となっております m(_ _)m 修正中です

この記事はSlack その2 Advent Calendar 2016の25日目の記事です。

なんとか間に合いました・・・。

追記:バグを修正しました。

128px x 128px以下の画像でも正常に追加できるようになりました。

追記:gifとアニメgifに対応しました。

ただし、リサイズ後でも64KBを超えてしまうとアップロードに失敗します。

追記:予定とは全然関係なく複数ファイルのアップロードと複数チームへの同時アップロードに対応しました。


はじめに

以前にSlackのemojiの引っ越しを作り、emojiをアップロードするためのノウハウが出来たので、それを応用してemojiの追加をドラッグ&ドロップで出来たら便利なのでは、と思い作りました。

実は以前Rubyでも書いたのですが、記事に出来ておらず・・・^^;

前回の記事でも書いたとおり、Rubyで作ったスクリプトは環境作成が0からだと大変なので、環境作成がいらないGoで書き直しました。


ソースとダウンロード先

slack_emoji_uploader_go

Release内にビルドしたモジュールを入れてあります。

WindowsとMacでzipファイルを分けたので、必要なファイルをダウンロードしてください。

なお、対応ファイルはjpgとpngとgif形式です。

gifも対応しようとしたのですが、現時点では色がおかしくなってしまうので再度調べて対応します・・・。

↑対応しました。


使い方

使い方は簡単です。

環境のセットアップは必要ありません。

emoji_conf.txtに必要な情報を記入してください。

引っ越し先の情報


  • Slack team URL

  • Slackにログインするためのメールアドレス

  • Slackにログインするためのパスワード

全て記入できたら以下手順で実行してください。

注:emojiの名前はドラッグ&ドロップした画像のファイル名の拡張子を除いた名前となります。

Macの場合


  1. Terminalを開く

  2. cdコマンドでフォルダまで移動


  3. chmod +x slack_emoji_uploader.shでslack_emoji_uploader.shに実行権限を付与

実行時:



  1. uploadに画像をドラッグ&ドロップする

Windowsの場合



  1. upload.batに画像をドラッグ&ドロップする

注意:

SlackのAPIやカスタマイズ甩ページに繋がりにくい時があり、失敗する時があるようです。

失敗した時は時間をおいて再度試してください。


どんなことをやっているのか

Slackへのアップロードは前回の引っ越しで出来ているため、今回のポイントは以下の2点です。


  • 画像のリサイズ

  • ドラッグ&ドロップ対応

画像のリサイズはこちらの記事を参考にしました。

uploadされた写真をリサイズする方法

nfnt/resizeというライブラリを使用しています。

ドラッグ&ドロップ対応はMacが中々うまくいかなくて、色々試した結果、下記の記事の方法でうまくいきました。

Automator のシェルスクリプトで $0 を取得する

Windowsはバッチファイルで簡単に出来たのですがね・・・。


作った感想

Windowsはバッチファイルで簡単に出来たのですが、Macでドラッグ&ドロップが中々出来なくて大分時間がかかりました。

あと、今回はなんとかアニメgifに対応しようと頑張ったのですが、うまくいかず・・・。

次回のアップデートに持ち越しとなりました。

対応しました!

結構苦戦しましたがなんとかなりました。

今回の経験でアニメgifの仕組みなどを少し知ることが出来ました。

gifアニメって2枚目以降は差分しか情報を持ってないんですね・・・。

今後追加予定の項目です。


  • リサイズした画像を消す処理

  • emojiの名前のチェック

  • ファイルサイズのチェック

  • アップロード失敗時のエラーメッセージをログに残す

  • Readmeをきちんと書く

では、良いSlackライフを!