Slackのemojiを一括でダウンロードする
Slack のemoji(絵文字) を 別のワークスペースに移行するため、一括でダウンロードするスクリプトを書きました。
ぐぐると API トークン使ったやり方が出てきますが、自分は ブラウザ+コマンドラインでやりました。
一括でダウンロードする手順
https://(workspace).slack.com/customize/emoji
を開き、ブラウザのDevtoolを開きNetworkのXHRから api/emoji.adminList
のレスポンスをコピーしてファイルに保存します。この例だと emojis.json
という名前にしました。
下記のコマンドを実行するとDLできます。
jq -r '.emoji[] | "curl \(.url) -o \(.name)"' emojis.json | perl -pe 's/(\.([^\/]*?) -o .*)$/$1.$2/' | bash
解説
取ってきたJSONはこのような形になっているので、 jq
コマンドで name と url を抜き出します
{ "ok": true, "emoji": [ { "name": "hoge", "url": "https://emoji.slack-edge.com/(team_id)/hoge/(hash).(拡張子)", "created": 1519043230 }, ... ] }
jq -r '.emoji[] | "curl \(.url) -o \(.name)"' emojis.json
の結果は
curl https://emoji.slack-edge.com/(team_id)/hoge/(hash).(拡張子) -o hoge
のようになります。
あとは 拡張子をつけるように置換すると
curl https://emoji.slack-edge.com/(team_id)/hoge/(hash).(拡張子) -o hoge.(拡張子)
になって、
bash に渡して実行すれば画像を一括でダウンロードできます。
(シェル芸あまり得意ではないので、もっといいやり方があるかも…)
一括インポート
ちなみに emoji の一括インポートはこちらの拡張を使うとできます。 chrome.google.com
これで無事emojiの移行ができました。