cutthecord/emojireplace.py

145 lines
6.5 KiB
Python

#!/bin/env python3
import os
import shutil
# REPLACE THESE LINES
extracted_discord_path = "/tmp/cutthecord/discord"
extracted_mutstd_path = "/var/www/mutant/72x72"
# Add your custom emojis here
# with "mutstd filename": "discord filename".
# You'll need to write a patch for `assets/data/emojis.json` too.
custom_emojis = {"1f4af-200d-1f308.png": "emoji_1f4af_1f308.png",
"10169b-200d-1f308.png": "emoji_10169b_1f308.png",
"1f9d1-200d-2708-fe0f.png": "emoji_1f9d1_2708.png",
"1f9d1-200d-2695-fe0f.png": "emoji_1f9d1-2695.png",
"1f9d1-200d-1f962-fe0f.png": "emoji_1f9d1_1f962.png",
"1f9d1-200d-1f680-fe0f.png": "emoji_1f9d1_1f680.png",
"1f9d1-200d-1f52c-fe0f.png": "emoji_1f9d1_1f52c.png",
"1f9d1-200d-1f527-fe0f.png": "emoji_1f9d1_1f527.png",
"1f9d1-200d-1f4bb-fe0f.png": "emoji_1f9d1_1f4bb.png",
"1f9d1-200d-1f373-fe0f.png": "emoji_1f9d1_1f373.png",
"10169a.png": "emoji_10169a.png",
"26b2.png": "emoji_26b2.png",
"26a8.png": "emoji_26a8.png",
"26a7.png": "emoji_26a7.png",
"26a5.png": "emoji_26a5.png",
"26a4.png": "emoji_26a4.png",
"26a3.png": "emoji_26a3.png",
"26a2.png": "emoji_26a2.png",
"2674.png": "emoji_2674.png",
"2642.png": "emoji_2642.png",
"2640.png": "emoji_2640.png",
"25be.png": "emoji_25be.png",
"1f9e1.png": "emoji_1f9e1.png",
"101685.png": "emoji_101685.png",
"101684.png": "emoji_101684.png",
"101683.png": "emoji_101683.png",
"101682.png": "emoji_101682.png",
"262d.png": "emoji_262d.png",
"1f9fb.png": "emoji_1f9fb.png",
"1f9f1.png": "emoji_1f9f1.png",
"1f9e8.png": "emoji_1f9e8.png",
"1f9b4.png": "emoji_1f9b4.png",
"101696.png": "emoji_101696.png",
"101695.png": "emoji_101695.png",
"101694.png": "emoji_101694.png",
"101693.png": "emoji_101693.png",
"101692.png": "emoji_101692.png",
"10169b.png": "emoji_10169b.png",
"101698.png": "emoji_101698.png",
"101699.png": "emoji_101699.png",
"1f9dd.png": "emoji_1f9dd.png",
"1f99d.png": "emoji_1f99d.png",
"1f99c.png": "emoji_1f99c.png",
"1f99a.png": "emoji_1f99a.png",
"101666.png": "emoji_101666.png",
"1f9d0.png": "emoji_1f9d0.png",
"1f97a.png": "emoji_1f97a.png",
"1f976.png": "emoji_1f976.png",
"1f975.png": "emoji_1f975.png",
"1f974.png": "emoji_1f974.png",
"1f973.png": "emoji_1f973.png",
"1f970.png": "emoji_1f970.png",
"1f92f.png": "emoji_1f92f.png",
"1f92e.png": "emoji_1f92e.png",
"1f92d.png": "emoji_1f92d.png",
"1f92c.png": "emoji_1f92c.png",
"1f92b.png": "emoji_1f92b.png",
"1f92a.png": "emoji_1f92a.png",
"1f929.png": "emoji_1f929.png",
"1f928.png": "emoji_1f928.png",
"1f575-10162b.png": "emoji_1f575_10162b.png",
"1f486-10162b.png": "emoji_1f486_10162b.png",
"1f481-10162b.png": "emoji_1f481_10162b.png",
"101690.png": "emoji_101690.png",
"101697.png": "emoji_101697.png",
"1f9dc.png": "emoji_1f9dc.png",
"1f3f4-fe0f.png": "emoji_1f3f4_fe0f.png",
"101681.png": "emoji_101681.png",
"101680.png": "emoji_101680.png",
"10167f.png": "emoji_10167f.png",
"10167e.png": "emoji_10167e.png",
"10167d.png": "emoji_10167d.png",
"10167c.png": "emoji_10167c.png",
"10167b.png": "emoji_10167b.png",
"10167a.png": "emoji_10167a.png",
"101679.png": "emoji_101679.png",
"101678.png": "emoji_101678.png",
"101677.png": "emoji_101677.png",
"101676.png": "emoji_101676.png",
"101675.png": "emoji_101675.png",
"101674.png": "emoji_101674.png",
"101673.png": "emoji_101673.png",
"101672.png": "emoji_101672.png",
"101671.png": "emoji_101671.png",
"101670.png": "emoji_101670.png",
"101686.png": "emoji_101686.png",
"101691.png": "emoji_101691.png"}
def clean_emoji_name(name):
name = name.lower().replace("_", "-")\
.replace("emoji-", "").replace("-fe0f", "")
return name
discord_emoji_path = os.path.join(extracted_discord_path, "res", "raw")
# Get file listings in relevant folders
discord_emojis = os.listdir(discord_emoji_path)
mutstd_emojis = os.listdir(extracted_mutstd_path)
# Clean names of mutantstd emojis so thar we can compare them
# to clean discord emojis later
clean_mutstd_emojis = {clean_emoji_name(emoji): emoji for
emoji in mutstd_emojis}
replace_counter = 0
# Go through each discord emoji, and clean their names
for emoji in discord_emojis:
clean_discord_emoji = clean_emoji_name(emoji)
# Check if said clean name of emoji is in clean mutstd list
if clean_discord_emoji in clean_mutstd_emojis:
# Get full unclean filename of mutantstd emoji, generate relevant paths
full_mutstd_name = clean_mutstd_emojis[clean_discord_emoji]
full_mutstd_path = os.path.join(extracted_mutstd_path, full_mutstd_name)
full_discord_path = os.path.join(discord_emoji_path, emoji)
# Copy and overwrite the discord emojis with the mutantstd alternatives
shutil.copyfile(full_mutstd_path, full_discord_path)
print("Replaced {} emoji.".format(emoji))
replace_counter += 1
for custom_emoji in custom_emojis:
discord_emoji_name = custom_emojis[custom_emoji]
full_mutstd_path = os.path.join(extracted_mutstd_path, custom_emoji)
full_discord_path = os.path.join(discord_emoji_path, discord_emoji_name)
shutil.copyfile(full_mutstd_path, full_discord_path)
print("Added custom {} emoji.".format(discord_emoji_name))
replace_counter += 1
print("Done, {} emojis replaced.".format(replace_counter))