Permalink
Please sign in to comment.
Browse files
Moved to a templated script system, so that the same script can be us…
…ed for other formats.
- Loading branch information...
Showing
with
161 additions
and 148 deletions.
- +2 −1 emojis-km6.kmmacros
- +6 −0 scripts/settings.json
- +19 −147 scripts/update-km.py
- +134 −0 templates/emojis-km6.kmmacros.template
| @@ -0,0 +1,6 @@ | ||
| +[ | ||
| + { | ||
| + "name": "emojis-km6.kmmacros", | ||
| + "data_format": "{placeholder},{emoji}\n" | ||
| + } | ||
| +] |
| @@ -1,157 +1,29 @@ | ||
| import xml.etree.ElementTree | ||
| import io | ||
| +import json | ||
| +with open('settings.json') as settings_file: | ||
| + settings = json.load(settings_file) | ||
| + | ||
| e = xml.etree.ElementTree.parse('../emoji substitutions.plist').getroot() | ||
| -emoji_list = u'' | ||
| -emoji = u'' | ||
| +formatted_data = {} | ||
| for idx, value in enumerate(e.findall('./array/dict/string')): | ||
| - # print(idx + ':' + value.text) | ||
| if idx % 2 == 0: | ||
| - emoji += ',' + value.text | ||
| + emoji = value.text | ||
| else: | ||
| - emoji = value.text + emoji + '\n' | ||
| - emoji_list += emoji | ||
| - emoji = u'' | ||
| -emoji_list = emoji_list.strip(u'\n') | ||
| - | ||
| -start = u'''<?xml version="1.0" encoding="UTF-8"?> | ||
| -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
| -<plist version="1.0"> | ||
| -<array> | ||
| - <dict> | ||
| - <key>Activate</key> | ||
| - <string>Normal</string> | ||
| - <key>IsActive</key> | ||
| - <true/> | ||
| - <key>Macros</key> | ||
| - <array> | ||
| - <dict> | ||
| - <key>Actions</key> | ||
| - <array> | ||
| - <dict> | ||
| - <key>IsActive</key> | ||
| - <true/> | ||
| - <key>IsDisclosed</key> | ||
| - <true/> | ||
| - <key>MacroActionType</key> | ||
| - <string>SetVariableToText</string> | ||
| - <key>Text</key> | ||
| - <string>%TriggerValue%</string> | ||
| - <key>Variable</key> | ||
| - <string>emoji</string> | ||
| - </dict> | ||
| - <dict> | ||
| - <key>IsActive</key> | ||
| - <true/> | ||
| - <key>IsDisclosed</key> | ||
| - <true/> | ||
| - <key>MacroActionType</key> | ||
| - <string>SetVariableToText</string> | ||
| - <key>Text</key> | ||
| - <string>''' | ||
| -end = u'''</string> | ||
| - <key>Variable</key> | ||
| - <string>emoji_list</string> | ||
| - </dict> | ||
| - <dict> | ||
| - <key>IsActive</key> | ||
| - <true/> | ||
| - <key>IsDisclosed</key> | ||
| - <true/> | ||
| - <key>MacroActionType</key> | ||
| - <string>SetVariableToText</string> | ||
| - <key>Text</key> | ||
| - <string>%Variable%emoji%</string> | ||
| - <key>Variable</key> | ||
| - <string>emoji_out</string> | ||
| - </dict> | ||
| - <dict> | ||
| - <key>Action</key> | ||
| - <string>IgnoreCaseString</string> | ||
| - <key>IsActive</key> | ||
| - <true/> | ||
| - <key>IsDisclosed</key> | ||
| - <true/> | ||
| - <key>MacroActionType</key> | ||
| - <string>SearchReplaceVariable</string> | ||
| - <key>Replace</key> | ||
| - <string>\+</string> | ||
| - <key>Search</key> | ||
| - <string>+</string> | ||
| - <key>Variable</key> | ||
| - <string>emoji</string> | ||
| - </dict> | ||
| - <dict> | ||
| - <key>Action</key> | ||
| - <string>IgnoreCaseRegEx</string> | ||
| - <key>Captures</key> | ||
| - <array> | ||
| - <string></string> | ||
| - <string>emoji_out</string> | ||
| - </array> | ||
| - <key>IsActive</key> | ||
| - <true/> | ||
| - <key>IsDisclosed</key> | ||
| - <true/> | ||
| - <key>MacroActionType</key> | ||
| - <string>SearchVariable</string> | ||
| - <key>Search</key> | ||
| - <string>%Variable%emoji%,(.+)</string> | ||
| - <key>Variable</key> | ||
| - <string>emoji_list</string> | ||
| - </dict> | ||
| - <dict> | ||
| - <key>Action</key> | ||
| - <string>ByPasting</string> | ||
| - <key>IsActive</key> | ||
| - <true/> | ||
| - <key>IsDisclosed</key> | ||
| - <true/> | ||
| - <key>MacroActionType</key> | ||
| - <string>InsertText</string> | ||
| - <key>Paste</key> | ||
| - <true/> | ||
| - <key>Text</key> | ||
| - <string>%Variable%emoji_out%</string> | ||
| - </dict> | ||
| - </array> | ||
| - <key>IsActive</key> | ||
| - <true/> | ||
| - <key>ModificationDate</key> | ||
| - <real>489967638.325351</real> | ||
| - <key>Name</key> | ||
| - <string>Emojis</string> | ||
| - <key>Triggers</key> | ||
| - <array> | ||
| - <dict> | ||
| - <key>Case</key> | ||
| - <string>Match</string> | ||
| - <key>DiacriticalsMatter</key> | ||
| - <true/> | ||
| - <key>MacroTriggerType</key> | ||
| - <string>TypedString</string> | ||
| - <key>OnlyAfterWordBreak</key> | ||
| - <false/> | ||
| - <key>SimulateDeletes</key> | ||
| - <true/> | ||
| - <key>TypedString</key> | ||
| - <string>:[^ :]+:</string> | ||
| - </dict> | ||
| - </array> | ||
| - <key>UID</key> | ||
| - <string>F2CC6E0A-4957-4F2A-AD57-66AED2A97555</string> | ||
| - </dict> | ||
| - </array> | ||
| - <key>Name</key> | ||
| - <string>My Stuff</string> | ||
| - <key>UID</key> | ||
| - <string>AE600F45-3378-4238-B241-2BE2EF1C6E96</string> | ||
| - </dict> | ||
| -</array> | ||
| -</plist> | ||
| -''' | ||
| + placeholder = value.text | ||
| + for setting in settings: | ||
| + if setting['name'] in formatted_data: | ||
| + formatted_data[setting['name']] += setting['data_format'].format( | ||
| + placeholder=placeholder, emoji=emoji) | ||
| + else: | ||
| + formatted_data[setting['name']] = setting['data_format'].format( | ||
| + placeholder=placeholder, emoji=emoji) | ||
| -with io.open('../emojis-km6.kmmacros', 'w', encoding='utf8') as f: | ||
| - f.write(start + emoji_list + end) | ||
| +for settings in settings: | ||
| + with io.open('../templates/' + setting['name'] + '.template', 'r', encoding='utf8') as s: | ||
| + template = s.read() | ||
| + with io.open('../' + setting['name'], 'w', encoding='utf8') as f: | ||
| + f.write(template.format(formatted_data[setting['name']])) |
| @@ -0,0 +1,134 @@ | ||
| +<?xml version="1.0" encoding="UTF-8"?> | ||
| +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
| +<plist version="1.0"> | ||
| +<array> | ||
| + <dict> | ||
| + <key>Activate</key> | ||
| + <string>Normal</string> | ||
| + <key>IsActive</key> | ||
| + <true/> | ||
| + <key>Macros</key> | ||
| + <array> | ||
| + <dict> | ||
| + <key>Actions</key> | ||
| + <array> | ||
| + <dict> | ||
| + <key>IsActive</key> | ||
| + <true/> | ||
| + <key>IsDisclosed</key> | ||
| + <true/> | ||
| + <key>MacroActionType</key> | ||
| + <string>SetVariableToText</string> | ||
| + <key>Text</key> | ||
| + <string>%TriggerValue%</string> | ||
| + <key>Variable</key> | ||
| + <string>emoji</string> | ||
| + </dict> | ||
| + <dict> | ||
| + <key>IsActive</key> | ||
| + <true/> | ||
| + <key>IsDisclosed</key> | ||
| + <true/> | ||
| + <key>MacroActionType</key> | ||
| + <string>SetVariableToText</string> | ||
| + <key>Text</key> | ||
| + <string>{0}</string> | ||
| + <key>Variable</key> | ||
| + <string>emoji_list</string> | ||
| + </dict> | ||
| + <dict> | ||
| + <key>IsActive</key> | ||
| + <true/> | ||
| + <key>IsDisclosed</key> | ||
| + <true/> | ||
| + <key>MacroActionType</key> | ||
| + <string>SetVariableToText</string> | ||
| + <key>Text</key> | ||
| + <string>%Variable%emoji%</string> | ||
| + <key>Variable</key> | ||
| + <string>emoji_out</string> | ||
| + </dict> | ||
| + <dict> | ||
| + <key>Action</key> | ||
| + <string>IgnoreCaseString</string> | ||
| + <key>IsActive</key> | ||
| + <true/> | ||
| + <key>IsDisclosed</key> | ||
| + <true/> | ||
| + <key>MacroActionType</key> | ||
| + <string>SearchReplaceVariable</string> | ||
| + <key>Replace</key> | ||
| + <string>\+</string> | ||
| + <key>Search</key> | ||
| + <string>+</string> | ||
| + <key>Variable</key> | ||
| + <string>emoji</string> | ||
| + </dict> | ||
| + <dict> | ||
| + <key>Action</key> | ||
| + <string>IgnoreCaseRegEx</string> | ||
| + <key>Captures</key> | ||
| + <array> | ||
| + <string></string> | ||
| + <string>emoji_out</string> | ||
| + </array> | ||
| + <key>IsActive</key> | ||
| + <true/> | ||
| + <key>IsDisclosed</key> | ||
| + <true/> | ||
| + <key>MacroActionType</key> | ||
| + <string>SearchVariable</string> | ||
| + <key>Search</key> | ||
| + <string>%Variable%emoji%,(.+)</string> | ||
| + <key>Variable</key> | ||
| + <string>emoji_list</string> | ||
| + </dict> | ||
| + <dict> | ||
| + <key>Action</key> | ||
| + <string>ByPasting</string> | ||
| + <key>IsActive</key> | ||
| + <true/> | ||
| + <key>IsDisclosed</key> | ||
| + <true/> | ||
| + <key>MacroActionType</key> | ||
| + <string>InsertText</string> | ||
| + <key>Paste</key> | ||
| + <true/> | ||
| + <key>Text</key> | ||
| + <string>%Variable%emoji_out%</string> | ||
| + </dict> | ||
| + </array> | ||
| + <key>IsActive</key> | ||
| + <true/> | ||
| + <key>ModificationDate</key> | ||
| + <real>489967638.325351</real> | ||
| + <key>Name</key> | ||
| + <string>Emojis</string> | ||
| + <key>Triggers</key> | ||
| + <array> | ||
| + <dict> | ||
| + <key>Case</key> | ||
| + <string>Match</string> | ||
| + <key>DiacriticalsMatter</key> | ||
| + <true/> | ||
| + <key>MacroTriggerType</key> | ||
| + <string>TypedString</string> | ||
| + <key>OnlyAfterWordBreak</key> | ||
| + <false/> | ||
| + <key>SimulateDeletes</key> | ||
| + <true/> | ||
| + <key>TypedString</key> | ||
| + <string>:[^ :]+:</string> | ||
| + </dict> | ||
| + </array> | ||
| + <key>UID</key> | ||
| + <string>F2CC6E0A-4957-4F2A-AD57-66AED2A97555</string> | ||
| + </dict> | ||
| + </array> | ||
| + <key>Name</key> | ||
| + <string>My Stuff</string> | ||
| + <key>UID</key> | ||
| + <string>AE600F45-3378-4238-B241-2BE2EF1C6E96</string> | ||
| + </dict> | ||
| +</array> | ||
| +</plist> |
0 comments on commit
1b301ea