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

この記事は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ライフを!


『 Go 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。