File size: 1,642 Bytes
21d8b09 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | import json
import os
from re import sub
entityNameReplacements = [
['adam_s', 'adams'],
['zoey_s', 'zoeys'],
['adams_phone', 'myphone'],
['zoeys_phone', 'herphone'],
['adams\'phone', 'myphone'],
['zoeys\'phone', 'herphone'],
['adamsphone', 'myphone'],
['zoeysphone', 'herphone'],
['prologue', 'episode0'],
['flashback', 'fb'],
['cutscenesandsequences', 'special'],
['sequences', 'events'],
['dad', 'zoeysdad'],
['mom', 'zoeysmom'],
['png', ''],
['jpg', ''],
['jpeg', ''],
]
skipMarkers = [
'(Not to be translated)',
'Media',
'Voiceovers and Subtitles',
'Store'
]
def toSimpleCase(s, joiner=''):
return joiner.join(
sub('([A-Z][a-z]+)', r' \1',
sub('([A-Z]+)', r' \1',
s.replace('-', ' ').replace('\'', '').replace('.', ''))).split()).lower()
def toSnakeCase(s):
return toSimpleCase(s, '_')
def toSafeEntityName(s):
s = toSimpleCase(s)
for replacement in entityNameReplacements:
s = s.replace(replacement[0], replacement[1])
return s
def are_keys_sequential(d):
keys = list(d.keys())
cursor = None
for index, key in enumerate(keys):
if index == 0:
if key != "0" and key != "1":
return False
if not key.isnumeric():
return False
if index > 0:
if int(key) - cursor != 1:
return False
cursor = int(key)
return True
def getMarkedFields(filePath, markers):
fileCheck = [m for m in markers if m["identifier"] in filePath]
file = None if len(fileCheck) == 0 else fileCheck[0]
return None if file is None else file["fields"]
def is_skippable(name):
return any(marker in name for marker in skipMarkers)
|