Updates to skin color generator to use names instead of codepoints

This commit is contained in:
Constantin A 2021-07-11 22:46:38 +02:00
parent b41da28dd1
commit 7aae4cd2c9
14 changed files with 14 additions and 91 deletions

View file

@ -108,11 +108,8 @@ class Emoji:
# The file extension (.svg) # The file extension (.svg)
fileextension = self.fextension fileextension = self.fextension
base_seq = basename.split('_') base_seq = basename.split('_')
base_seq.insert(2, extension) base_seq.append(extension)
# Add FE0F? basename = ' '.join(base_seq)
if self.end:
base_seq.append('fe0f')
basename = '_'.join(base_seq)
# Stitch it together and return the whole file path # Stitch it together and return the whole file path
return os.path.join(directory, basename) + fileextension return os.path.join(directory, basename) + fileextension

View file

@ -1,74 +0,0 @@
# -*- coding: utf-8 -*-
import os
import sys
import argparse
from modifier import *
from emoji import *
def main():
"""
Die main-Funktion, welche die Skin-Modifier verarbeitet
:return: Nix
"""
# Alle Kommandozeilenargumente hinzufügen
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group(required = True)
group.add_argument('--input_file', '-i', help='Input file', metavar='ifile')
group.add_argument('--input_dir', '-d', help='Input directory', metavar='idir', default = '.')
parser.add_argument('--mod_dir', '-m', help='Modifier directory', metavar='mdir', default = './skins')
parser.add_argument('--base_name', '-b', help='Name of the base skin color', metavar='bname', default='base')
parser.add_argument('--add_end', '-e', help='Do you want to add an fe0f ZWJ-sequence?', default='n', choices=['y','n','auto'], required=False)
# Zu dict verarbeiten
args = vars(parser.parse_args())
end = False if args['add_end'].lower() == 'n' else (True if args['add_end'].lower() == 'y' else None)
# Skin-Modifier erstellen
modifiers = generate_modifiers(args['mod_dir'])
# Wurde ein Verzeichnis gewählt?
if args['input_dir']:
multi_process(args['input_dir'], modifiers, args['base_name'], end)
else:
# Erstelle ein Emoji-Objekt
emoji = Emoji(modifiers, args['input_file'], args['base_name'], end)
# Und wende die Modifier an
emoji.batch_modify()
def generate_modifiers(path: str) -> dict:
"""
Holt alle Skin-Modifier aus dem Ordner
:param path: Der Ordner mit den JSON-Dateien
:return: Ein dict mit name: Modifier
"""
modifiers = {}
for file in os.listdir(path):
# Ist es überhaupt eine JSON-Datei?
if os.path.splitext(file)[-1].lower() == '.json':
# Erstelle aus der JSON-Datei und füge es ein
modifier = Modifier.generate_from_json(os.path.join(path, file))
modifiers.update({modifier.name: modifier})
return modifiers
def multi_process(directory: str, modifiers: dict, base: str, end: bool = False):
"""
Verarbeitet ein ganzes Verzeichnis mit Emojis
:param directory: Der Ordner
:param modifiers: Die Skin-Modifier
:param base: Der Name des Basis-Typen
:param end: Ob noch eine fe0f-Sequenz angefügt werden soll.
:return: Nix
"""
files = os.listdir(directory)
for file in files:
# Nur SVG wird derzeit unterstützt
if os.path.splitext(file)[-1].lower() in {'.svg'}:
# Erstelle ein Emoji-Objekt
emoji = Emoji(modifiers, os.path.join(directory, file), base, end)
# Und wende die Modifier an
emoji.batch_modify()
if __name__ == '__main__':
main()

View file

@ -1,6 +1,6 @@
{ {
"name": "dark", "name": "dark",
"extension": "1f3ff", "extension": "dark skin tone",
"colors": "colors":
{ {
"skin": "#70534a", "skin": "#70534a",

View file

@ -1,6 +1,6 @@
{ {
"name": "light", "name": "light",
"extension": "1f3fb", "extension": "light skin tone",
"colors": "colors":
{ {
"skin": "#fadcbc", "skin": "#fadcbc",

View file

@ -1,6 +1,6 @@
{ {
"name": "medium", "name": "medium",
"extension": "1f3fd", "extension": "medium skin tone",
"colors": "colors":
{ {
"skin": "#bf8f68", "skin": "#bf8f68",

View file

@ -1,6 +1,6 @@
{ {
"name": "medium_dark", "name": "medium_dark",
"extension": "1f3fe", "extension": "medium-dark skin tone",
"colors": "colors":
{ {
"skin": "#9b643c", "skin": "#9b643c",

View file

@ -1,6 +1,6 @@
{ {
"name": "medium_light", "name": "medium_light",
"extension": "1f3fc", "extension": "medium-light skin tone",
"colors": "colors":
{ {
"skin": "#e0bb95", "skin": "#e0bb95",

View file

@ -1,6 +1,6 @@
{ {
"name": "dark", "name": "dark",
"extension": "1f3ff", "extension": "dark skin tone",
"colors": "colors":
{ {
"skin": "#70534a", "skin": "#70534a",

View file

@ -1,6 +1,6 @@
{ {
"name": "light", "name": "light",
"extension": "1f3fb", "extension": "light skin tone",
"colors": "colors":
{ {
"skin": "#fadcbc", "skin": "#fadcbc",

View file

@ -1,6 +1,6 @@
{ {
"name": "medium", "name": "medium",
"extension": "1f3fd", "extension": "medium skin tone",
"colors": "colors":
{ {
"skin": "#bf8f68", "skin": "#bf8f68",

View file

@ -1,6 +1,6 @@
{ {
"name": "medium_dark", "name": "medium_dark",
"extension": "1f3fe", "extension": "medium-dark skin tone",
"colors": "colors":
{ {
"skin": "#9b643c", "skin": "#9b643c",

View file

@ -1,6 +1,6 @@
{ {
"name": "medium_light", "name": "medium_light",
"extension": "1f3fc", "extension": "medium-light skin tone",
"colors": "colors":
{ {
"skin": "#e0bb95", "skin": "#e0bb95",

View file

@ -1,6 +1,6 @@
{ {
"name": "redhead", "name": "redhead",
"extension": "1f9b0", "extension": "red hair",
"colors": "colors":
{ {
"skin": "#fac01b", "skin": "#fac01b",

View file

@ -1,6 +1,6 @@
{ {
"name": "white", "name": "white",
"extension": "1f9b3", "extension": "white hair",
"colors": "colors":
{ {
"skin": "#fac01b", "skin": "#fac01b",