LoginSignup
11

More than 3 years have passed since last update.

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

Last updated at Posted at 2016-12-25

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ライフを!

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11