Permalink
Browse files

Moved to a templated script system, so that the same script can be us…

…ed for other formats.
  • Loading branch information...
1 parent 532a271 commit 1b301eae3605e2c299956a14a94e7d3dee68fa3e @rael9 rael9 committed Jul 15, 2016
Showing with 161 additions and 148 deletions.
  1. +2 −1 emojis-km6.kmmacros
  2. +6 −0 scripts/settings.json
  3. +19 −147 scripts/update-km.py
  4. +134 −0 templates/emojis-km6.kmmacros.template
View
@@ -1097,7 +1097,8 @@
:trump:,🎃
:millenial:,🐍
:millenials:,🐍🐍🐍
-:booty:,🍑</string>
+:booty:,🍑
+</string>
<key>Variable</key>
<string>emoji_list</string>
</dict>
View
@@ -0,0 +1,6 @@
+[
+ {
+ "name": "emojis-km6.kmmacros",
+ "data_format": "{placeholder},{emoji}\n"
+ }
+]
View
@@ -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

Please sign in to comment.