summary refs log tree commit diff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/codegen.sh6
-rwxr-xr-xscripts/emoji_codegen.py36
2 files changed, 24 insertions, 18 deletions
diff --git a/scripts/codegen.sh b/scripts/codegen.sh
new file mode 100644
index 00000000..5efda523
--- /dev/null
+++ b/scripts/codegen.sh
@@ -0,0 +1,6 @@
+#!/bin/bash
+ROOT=$(realpath "$PWD/$(dirname "$0")/..")
+cd $ROOT
+cat resources/provider-header.txt > src/emoji/Provider.cpp 
+
+scripts/emoji_codegen.py resources/emoji-test.txt resources/shortcodes.txt >> src/emoji/Provider.cpp
diff --git a/scripts/emoji_codegen.py b/scripts/emoji_codegen.py
index 37ad3cec..5da3fb26 100755
--- a/scripts/emoji_codegen.py
+++ b/scripts/emoji_codegen.py
@@ -78,26 +78,26 @@ if __name__ == '__main__':
 
 
         char, name = re.match(r'^(\S+) E\d+\.\d+ (.*)$', charAndName).groups()
-        # drop "face" part
-        
+        #TODO: Handle skintone modifiers in a sane way
         if name in shortcodeDict: 
-            name = shortcodeDict[name]
+            # TODO: this duplicates emoji
+            categories[current_category].append(Emoji(code, shortcodeDict[name]))
+        
+        if name.endswith(' face'): 
+            name = name[:-5]
+        elif name.endswith(' button'): 
+            name = name[:-7]
         else: 
-            if name.endswith(' face'): 
-                name = name[:-5]
-            elif name.endswith(' button'): 
-                name = name[:-7]
-            else: 
-                matchobj = re.match(r'^flag: (.*)$', name) 
-                if matchobj: 
-                    country, = matchobj.groups() 
-                    name = country + " flag"
-            name = name.replace(" ", "_")
-            name = name.replace("“", "")
-            name = name.replace("”", "")
-            name = name.replace(":", "")
-            name = name.lower()
-            name = unidecode(name)
+            matchobj = re.match(r'^flag: (.*)$', name) 
+            if matchobj: 
+                country, = matchobj.groups() 
+                name = country + " flag"
+        name = name.replace(" ", "_")
+        name = name.replace("“", "")
+        name = name.replace("”", "")
+        name = name.replace(":", "")
+        name = name.lower()
+        name = unidecode(name)
         categories[current_category].append(Emoji(code, name))
 
     # Use xclip to pipe the output to clipboard.