All Projects → MdAbedin → slack-emoji-enlarger

MdAbedin / slack-emoji-enlarger

Licence: MIT License
A command-line tool to enlarge and split an image or gif into tiles and auto-upload each as a slack emoji to create the illusion of an enlarged slack emoji

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to slack-emoji-enlarger

Old Slack Emojis
Bring back old emojis to new Slack!
Stars: ✭ 39 (+69.57%)
Mutual labels:  slack, emojis
Emojipacks
CLI to bulk upload emojis to your Slack
Stars: ✭ 1,275 (+5443.48%)
Mutual labels:  slack, emojis
slack-emoji-for-techies
100s of Slack emoji, many tech-related
Stars: ✭ 123 (+434.78%)
Mutual labels:  slack, emojis
Perfect-Authentication
OAuth2 Implementations with Facebook, Google, LinkedIn, Slack, SalesForce and GitHub providers.
Stars: ✭ 14 (-39.13%)
Mutual labels:  slack
ben
Fast, native*, cross-platform Slack client, develop with React QML
Stars: ✭ 19 (-17.39%)
Mutual labels:  slack
slack logger backend
An Elixir logger backend for posting errors to Slack.
Stars: ✭ 31 (+34.78%)
Mutual labels:  slack
slack-mock
A Slack API mocker for Slack bot integration tests.
Stars: ✭ 61 (+165.22%)
Mutual labels:  slack
aws-iam-slack-notifer
Notifies slack when an IAM policy is created, changed or assigned to a role
Stars: ✭ 35 (+52.17%)
Mutual labels:  slack
terraform-aws-ecs-cloudwatch-sns-alarms
Terraform module to create CloudWatch Alarms on ECS Service level metrics.
Stars: ✭ 23 (+0%)
Mutual labels:  slack
slack-rota
日々のローテーションをお知らせする Slack アプリ
Stars: ✭ 14 (-39.13%)
Mutual labels:  slack
turnio
🤖 Bot to manage a queue of slack users in a channel
Stars: ✭ 11 (-52.17%)
Mutual labels:  slack
emoji-extractor-plus
Extract emojis from Apple font in PNG format
Stars: ✭ 42 (+82.61%)
Mutual labels:  emojis
nertivia-client-ts
Recreating Nertivia client more efficiently using typescript. Nertivia is a web chat app.
Stars: ✭ 12 (-47.83%)
Mutual labels:  emojis
slag
slack in the terminal using javascript
Stars: ✭ 16 (-30.43%)
Mutual labels:  slack
slack-howdoi
☁️ Slack integration with the howdoi library
Stars: ✭ 43 (+86.96%)
Mutual labels:  slack
SlackStream
An all-at-a-glance Slack client that aggregates all channels and workspaces at one place
Stars: ✭ 40 (+73.91%)
Mutual labels:  slack
slackify-markdown
Convert markdown into Slack-specific markdown
Stars: ✭ 80 (+247.83%)
Mutual labels:  slack
iou-slack-bot
💸 IOU Slack Bot - Keep track of your debts with your peers.
Stars: ✭ 13 (-43.48%)
Mutual labels:  slack
jarjar
Python utility for sending slack notifications to your teams
Stars: ✭ 19 (-17.39%)
Mutual labels:  slack
prox
🙈 Share anonymous confessions in Slack
Stars: ✭ 28 (+21.74%)
Mutual labels:  slack

slack-emoji-enlarger

A command-line tool to enlarge and split an image or gif into tiles and auto-upload each as a slack emoji to create the illusion of an enlarged slack emoji

example of enlarged slack emoji image

enlarged emoji image wtih spacing between individual emojis

exmaple of enlarged slack emoji gif

Dependencies

  • Python3
  • If you're using images, ImageMagick. If you install from source, you might have to install many other things to handle file formats, so it's best to install with a package manager
  • If you're using gifs, gifsicle

Usage

python3 slack-emoji-enlarger.py file_path size_dimension size emoji_base_name slack_subdomain slack_user_token

Required arguments:

  • file_path: path to image or gif to enlarge and upload
  • size_dimension: which dimension the enlarged size will be given in, either width or height
  • size: number of 128x128 emoji tiles either per column (height) or row (width) in final output
  • emoji_base_name: base name of emojis to be uploaded. all emoji names will be of the form :{emoji_base_name}-{X}: where X is the index of the emoji within the grid from left to right, top to bottom, with leading zeros so that all corresponding emoji names are the same width
  • slack_subdomain: the subdomain of the slack workspace where you want to upload the emojis: {slack-subdomain}.slack.com
  • slack_user_token: a slack user token from the slack-subdomain. get it by going to {slack-subomain}.slack.com/customize/emoji -> open console -> run window.prompt("slack user token:", TS.boot_data.api_token). usually starts with 'xox'

Optional arguments:

  • -h or --help: show help message and exit
  • -d or --dry_run: enlarge and create tiles but don't upload
  • -gc GIF_COMPRESSION or --gif_compression GIF_COMPRESSION: amount of lossy gif compression to apply before uploading. default is 30 which is very light compression. 200 is heavy compression

Usage Examples

  • Enlarge an image stonks.jpg to have a height of 3 emojis where each emoji's name is :stonks-big-00:, :stonks-big-01:, etc. to the Slack workspace coinbase.slack.com using your Slack user token xoxs-1234-1234-1234-abcd:

    • python3 slack-emoji-enlarger.py stonks.jpg height 3 stonks-big coinbase xoxs-1234-1234-1234-abcd
  • Enlarge a gif eyes-shaking.gif to have a width of 10 emojis where each emoji's name is :eyes-shaking-w10-000:, :eyes-shaking-w10-001:, etc. to the slack workspace hacknyu.slack.com using your Slack user token xoxs-1234-1234-1234-abcd, with each gif tile being lossy compressed with a factor of 100:

    • python3 slack-emoji-enlarger.py eyes-shaking.gif width 10 eyes-shaking-w10 hacknyu xoxs-1234-1234-1234-abcd --gif_compression 100
  • Enlarge an image stonks.jpg to have a height of 16 emojis where each emoji's name is :stonks-huge-000:, :stonks-huge-001:, etc. and create the tiles and paste strings but don't upload anywhere:

    • python3 slack-emoji-enlarger.py stonks.jpg height 16 stonks-huge _ _ --dry_run

Notes

  • DO NOT SHARE OR MAKE YOUR SLACK TOKEN PUBLICALLY FINDABLE, for example don't message someone with a command copy paste that has your token in it or upload it to a public github repo. It can be used to authenticate for many Slack API endpoints, so if someone other than you has your token, they could cause a lot of problems in your Slack workspace
  • Slack tokens might expire at random times, so if uploads fail constantly, try getting a Slack token again
  • You might have to soft refresh (Ctrl + R or Cmd + R) Slack in order for gif tiles to sync
  • Large or rapid usages might run into rate limiting from Slack. You can re-run your command after waiting for a bit in order to retry all uploads
  • Large gif enlargements may cause lag or crashes in Slack
  • Some gifs may be too large in file size even after the lossy compression from this tool. You can try increasing the gif compression by retrying with --gif_compression X, where X is a number bigger than 30, at the end of your command to retry all uploads with increased compression. 200 is heavy compression

Planned Features

  • Auto-retry uploads that fail due to rate limiting
  • Provide a GUI alongside the CLI for easier use and to easily preview the results before uploading
  • Option to use email and password instead of Slack token
  • Option to specify upload interval in command
  • Option to show details and ask for confirmation before starting the process
  • Option to delete exisiting emojis with the same name before uploading
  • Option to delete all emoji tiles from a previous upload
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].