1
0
mirror of https://github.com/0O0o0oOoO00/Alas.git synced 2026-05-14 11:09:25 +08:00

add: extract prefix assets to single file

This commit is contained in:
0O0o0oOoO00
2025-09-14 15:40:40 +08:00
parent 9d643cd233
commit 43038b1bc8

View File

@@ -189,6 +189,56 @@ class ModuleExtractor:
f.write(text + '\n')
class ModuleExtractor(ModuleExtractor):
@property
def expression(self):
exp = []
prefix_assets = {}
for file in os.listdir(self.folder):
if file[0].isdigit():
continue
maybe_prefix = file.split("_", 1)[0]
if maybe_prefix.islower():
if maybe_prefix not in prefix_assets:
prefix_assets[maybe_prefix] = list()
prefix_assets[maybe_prefix].append(ImageExtractor(module=self.name, file=file).expression)
continue
if file.startswith('TEMPLATE_'):
exp.append(TemplateExtractor(module=self.name, file=file).expression)
continue
# if file.startswith('OCR_'):
# exp.append(OcrExtractor(module=self.name, file=file, config=self.config).expression)
# continue
if self.is_base_image(file):
exp.append(ImageExtractor(module=self.name, file=file).expression)
continue
exp.sort()
for _, v in prefix_assets.items():
v.sort()
logger.info('Module: %s(%s)' % (self.name, len(exp)))
exp = IMPORT_EXP + exp
for prefix_name in prefix_assets.keys():
prefix_assets[prefix_name] = IMPORT_EXP + prefix_assets[prefix_name]
return exp, prefix_assets
def write_to_file(self, file, text):
with open(file, 'w', newline='') as f:
for line in text:
f.write(line + '\n')
def write(self):
folder = os.path.join(MODULE_FOLDER, self.name)
if not os.path.exists(folder):
os.mkdir(folder)
text, prefix_assets = self.expression
self.write_to_file(os.path.join(folder, BUTTON_FILE), text)
for prefix, content in prefix_assets.items():
self.write_to_file(os.path.join(folder, f"{prefix}_{BUTTON_FILE}"), content)
def worker(module):
me = ModuleExtractor(name=module)
me.write()