-
-
Save keturn/9aca9dab0c48ddc007645f46c773bd3e to your computer and use it in GitHub Desktop.
Extracting / Exporting custom emoji from Slack
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This builds off the excellent work of @lmarkus & @dogeared. | |
The scripts below can be used in conjunction with the Slack Emoji Tools Google Chrome extension to export emojis from | |
one Slack team and import into another team. | |
Original work here: | |
* https://gist.github.com/lmarkus/8722f56baf8c47045621 | |
* https://gist.github.com/dogeared/f8af0c03d96f75c8215731a29faf172c |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Login to your team through the browser. | |
// Go to: https://<team name>.slack.com/customize/emoji | |
// Run this on the browser's dev tools javascript console | |
var emojis = $('.emoji_row'); | |
var emojiList = emojis.map(function () { | |
var url = $(this).find('td:nth-child(1) span').attr('data-original'); | |
if (url.length > 512) { // bonkers data-urls | |
return null | |
} | |
var extension = url.substring(url.lastIndexOf('.')); | |
var name = $(this).find('td:nth-child(2)').html().replace(/:|\s/g, ''); | |
return {name, extension, url} | |
}).get(); | |
function curlEmoji({name, extension, url}) { | |
return `url "${url}" | |
output "${name}${extension}" | |
` | |
} | |
function curlConfigFilename() { | |
var slackHost = new URL(boot_data.team_url).hostname.split('.', 1)[0] | |
return `${slackHost}-emoji.curl.cfg` | |
} | |
var curlOptions = emojiList.map(curlEmoji) | |
var output = new Blob(curlOptions, {type: "text/plain"}) | |
var downloadLink = document.createElement("a") | |
downloadLink.href = URL.createObjectURL(output) | |
downloadLink.download = curlConfigFilename() | |
downloadLink.append(`⬇️ Download: ${curlConfigFilename()}`) | |
$('#custom_emoji').before(downloadLink) | |
downloadLink.click() | |
/** | |
* this will download a curl.cfg file | |
* use it with curl as | |
* | |
* curl --config ourteam-emoji.curl.cfg | |
* | |
* and files will be downloaded to the current directory. | |
* | |
* You can now drag and drop all the emoji files in the output folder to the Buld Emoji Uploader space that you'll see on | |
* the https://<team>.slack.com/customize/emoji page if you've installed the chrome extension | |
* https://chrome.google.com/webstore/detail/slack-emoji-tools/anchoacphlfbdomdlomnbbfhcmcdmjej | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment