2d4e355849
Makes the export script require Python 3.6. (async/await were added in 3.5, so maybe there?) I'll need to tidy it up a bit, but this is v1 of functionality. Adds -r/--concurrent-requests for throttling. Defaults to 200. (configured in .env as CONCURRENT_REQUESTS) Caveats: - Adds an aiohttp dependency. - Stops using upload._session, effectively duplicating the functionality to get access to aiohttp.ClientSession. - Adds logging to record the files downloaded. Previously silent. I've also noticed a bug in filename parsing where a bunch of files all named `apple.png` are created. This script parses the URL to retrieve the filename, which exposes this duplication. My version does more parsing in the HTML to detect the :emoji_name: as used by Slack clients. Currently I'm not addressing this. |
||
---|---|---|
.env.example | ||
.gitignore | ||
LICENSE | ||
Pipfile | ||
Pipfile.lock | ||
README.md | ||
export.py | ||
requirements.txt | ||
upload.py |
README.md
Slack Emojinator
Bulk upload emoji into Slack
Want to create a custom Slack emoji for every pokemon? Slack doesn't currently expose an API endpoint for creating emoji, probably to prevent users from doing exactly what I'm doing, but here's a way to do it anyway.
Creating Emoji
You'll need Python and pip
to get started. I recommend using pipenv.
Prepare a directory that contains an image for each emoji you want to create. Remember to respect Slack's specifications for valid emoji images: no greater than 128px in width or height, no greater than 64K in image size. The base filename of each image file should be the name of the emoji (the bit you'll type inside :
to display it).
Clone the project and install its prereqs:
libxml
is required on your system, if you'd like to use the bulk export script.
git clone https://github.com/smashwilson/slack-emojinator.git
cd slack-emojinator
pipenv install
You'll need to provide your team name (the bit before ".slack.com" in your admin URL) and your session cookie (grab it from your browser). Copy .env.example
, fill them in, and source it.
To grab your Slack session cookie:
- Open your browser's dev tools and copy the value of
document.cookie
. - Go to the Network tab.
- Re-load your workspace's
https://{teamname}.slack.com/customize/emoji
page. - Find the call to
emoji
(it is most likely the very top request). - Scroll to
Request-Headers
, copy the value of "Cookie," and add to your.env
file.
cp .env.example .env
${EDITOR} .env
source .env
Now you're ready to go. Use a shell glob to invoke upload.py
with the emoji files as ARGV:
pipenv run python upload.py ${EMOJI_DIR}/*.png
✨
Exporting Emoji
To export emoji, use export.py
and specify an emoji directory:
source .env
pipenv run python export.py path-to-destination/