• Stars
    star
    329
  • Rank 128,030 (Top 3 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 10 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Bulk upload emoji into Slack

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/

More Repositories

1

merge-conflicts

Resolve git merge conflicts in Atom
CoffeeScript
431
star
2

lets-nginx

Push button, get TLS
Shell
173
star
3

hubot-markov

Hubot watches all, and builds a markov model from everything you say.
CoffeeScript
63
star
4

stacktrace

Atom package to navigate stacktraces.
CoffeeScript
35
star
5

pushbot

A Hubot instance that's here to protect you.
JavaScript
11
star
6

cringe

Orchestrate rolling deployments of Docker containers like it's 2005
JavaScript
8
star
7

hubot-pipe

Put some Unix in your Hubot
JavaScript
7
star
8

bdtg

Roleplaying system that's just a little metal
Makefile
7
star
9

node-watchman

Docker container based on node 8's Alpine distribution
6
star
10

segment

Most programmers, at some point, daydream about writing their own programming language. This one's mine.
C
6
star
11

devstack-ansible

Ansible playbook to set up devstack from a bare server.
6
star
12

branchtree

CLI to manage chains of pull request branches
Ruby
5
star
13

dotfiles

Settings and setup.
Ruby
5
star
14

mocha-stress

Re-run flaky Mocha tests to flush out inconsistent results
JavaScript
5
star
15

kite-shell

Electron + Docker, or Kitematic - UI
JavaScript
5
star
16

websinger

Turn your backup server into a jukebox
Ruby
5
star
17

objectlite

An object database analog to SQLite.
C
4
star
18

nested-builder

Tersely construct complex test fixture objects with the builder pattern.
TypeScript
4
star
19

hubot-quotefile

Embarrass your co-workers with their own words!
CoffeeScript
4
star
20

hubot-hammersport

It's over when there's a winner.
CoffeeScript
4
star
21

hubot-plan

Event planning with robots
JavaScript
3
star
22

hubot-greetings

Customized greetings for individual people by your Hubot.
CoffeeScript
3
star
23

hubot-roller

hubot roll (1d100)d(4d17 + 5)
JavaScript
3
star
24

strac

A Trac interface to the Smalltalk STORE version control system.
Python
2
star
25

cashmonies

Console-based, simplistic financial tracking.
Ruby
2
star
26

collab.fict.io

Web UI for the collaborative fiction editor.
JavaScript
2
star
27

pr-status

Dashboard reporting build and review status of your open pull requests
TypeScript
2
star
28

typescript-module-template

Starting point for writing npm modules in TypeScript.
TypeScript
2
star
29

collaborative-fiction

Tell stories with your friends.
Rust
2
star
30

watcher-stress

Stress-test node.js filesystem watchers
JavaScript
2
star
31

flashcards

JavaScript
1
star
32

git-engineroom-tour

Presentation introducing intermediate git concepts and usage.
CSS
1
star
33

pushbot.party

Frontend for pushbot's web interface
TypeScript
1
star
34

swiftest

Pythonic client library for OpenStack Object Storage
Python
1
star
35

az-infra

System components for Azurefire infrastructure
Python
1
star
36

loghttp

HTTP transaction logger for Golang.
Go
1
star
37

az-coordinator

Container orchestration for azurefire services
Go
1
star
38

strider-dockerfile

Dockerfile for a StriderCD server to run page builds
JavaScript
1
star
39

deconst-add-content

Quick automation for content repository maintenance.
Ruby
1
star
40

pull-request

GitHub pull request magic in Atom
JavaScript
1
star
41

ascension

Nanowrimo 2010
Ruby
1
star
42

az-example

An example service used to test az-coordinator deployment.
Ruby
1
star
43

hubot-harness

Test harness for Hubot scripts and plugins
JavaScript
1
star
44

create-fixture-repository

Quickly create git repositories in known states.
TypeScript
1
star
45

gpg-matrix

Execute select atom/github tests against a matrix of gpg versions
Ruby
1
star
46

az-nginx

nginx container to front azurefire infrastructure
Shell
1
star
47

azurefire

Source code for azurefire.net
CSS
1
star
48

docker-module-test

Ansible playbook that puts the Docker module through its paces.
Shell
1
star
49

hubot-pipe-scripts

Utility scripts for use with hubot-pipe
JavaScript
1
star
50

hubot-shellish

Slightly enhanced Shell adapter for Hubot development
JavaScript
1
star
51

music-manager

Spit and duct tape solution to shuttling music around our LAN.
Ruby
1
star
52

sprint-closer

Automate the closing of Trello sprints for the DevEx team.
Go
1
star
53

az-tls

Renew TLS certifications from Let's Encrypt via DNS verification
Python
1
star
54

dev-playbook

Ansible playbook to configure machines with a reasonable set of development tools.
1
star
55

deconst-drc-blog

Jekyll content decoupled from the developer.rackspace.com repository.
HTML
1
star
56

minimal-sinatra

A minimal Sinatra app that I use to test Docker things.
Ruby
1
star
57

apm-benchmarking

Some scripts to benchmark and smoke-test apm
JavaScript
1
star
58

or-redis-cli

Shell
1
star