Use fully qualified emoji and use literals

This commit is contained in:
Nicolas Werner 2022-01-01 06:16:37 +01:00
parent 61404641d9
commit a206500510
No known key found for this signature in database
GPG key ID: C8D75E610773F2D9
2 changed files with 10815 additions and 7682 deletions

View file

@ -8,7 +8,7 @@ from jinja2 import Template
class Emoji(object): class Emoji(object):
def __init__(self, code, shortname): def __init__(self, code, shortname):
self.code = repr(code.encode('utf-8'))[1:].strip("'") self.code = ''.join(['\\U'+c.rjust(8, '0') for c in code.strip().split(' ')])
self.shortname = shortname self.shortname = shortname
def generate_qml_list(**kwargs): def generate_qml_list(**kwargs):
@ -17,7 +17,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
{%- for c in kwargs.items() %} {%- for c in kwargs.items() %}
// {{ c[0].capitalize() }} // {{ c[0].capitalize() }}
{%- for e in c[1] %} {%- for e in c[1] %}
Emoji{QString::fromUtf8("{{ e.code }}"), "{{ e.shortname }}", emoji::Emoji::Category::{{ c[0].capitalize() }}}, Emoji{QStringLiteral(u"{{ e.code }}"), QStringLiteral(u"{{ e.shortname }}"), emoji::Emoji::Category::{{ c[0].capitalize() }}},
{%- endfor %} {%- endfor %}
{%- endfor %} {%- endfor %}
}; };
@ -67,8 +67,8 @@ if __name__ == '__main__':
code, qualification, charAndName = segments code, qualification, charAndName = segments
# skip fully qualified versions of same unicode # skip unqualified versions of same unicode
if code.endswith('FE0F'): if qualification == 'unqualified':
continue continue
if qualification == 'component': if qualification == 'component':
@ -76,7 +76,7 @@ if __name__ == '__main__':
char, name = re.match(r'^(\S+) E\d+\.\d+ (.*)$', charAndName).groups() char, name = re.match(r'^(\S+) E\d+\.\d+ (.*)$', charAndName).groups()
categories[current_category].append(Emoji(char, name)) categories[current_category].append(Emoji(code, name))
# Use xclip to pipe the output to clipboard. # Use xclip to pipe the output to clipboard.
# e.g ./codegen.py emoji.json | xclip -sel clip # e.g ./codegen.py emoji.json | xclip -sel clip

File diff suppressed because it is too large Load diff