54 lines
1.6 KiB
Python
54 lines
1.6 KiB
Python
"""Изменяет формат "поделиться"
|
|
|
|
"selectable_text": {
|
|
"enabled": true,
|
|
"format": {
|
|
"share_channel_text": "Канал: «%1$s»\n%2$schannel/%3$d",
|
|
"share_collection_text": "Коллекция: «%1$s»\n%2$scollection/%3$d",
|
|
"share_profile_text": "Профиль пользователя «%1$s»\n%2$sprofile/%3$d",
|
|
"share_release_text": "Релиз: «%1$s»\n%2$srelease/%3$d"
|
|
}
|
|
}
|
|
"""
|
|
|
|
priority = 0
|
|
|
|
# imports
|
|
from tqdm import tqdm
|
|
from lxml import etree
|
|
from typing import Dict, Any
|
|
from pydantic import Field
|
|
|
|
from utils.config import PatchConfig
|
|
|
|
#Config
|
|
DEFAULT_FORMATS = {
|
|
"share_channel_text": "Канал: «%1$s»\n%2$schannel/%3$d",
|
|
"share_collection_text": "Коллекция: «%1$s»\n%2$scollection/%3$d",
|
|
"share_profile_text": "Профиль пользователя «%1$s»\n%2$sprofile/%3$d",
|
|
"share_release_text": "Релиз: «%1$s»\n%2$srelease/%3$d"
|
|
}
|
|
|
|
class Config(PatchConfig):
|
|
format: Dict[str, str] = Field(DEFAULT_FORMATS, description="Строки для замены в `strings.xml`")
|
|
|
|
# Patch
|
|
def apply(config: Config, base: Dict[str, Any]) -> bool:
|
|
|
|
file_path = "./decompiled/res/values/strings.xml"
|
|
|
|
parser = etree.XMLParser(remove_blank_text=True)
|
|
tree = etree.parse(file_path, parser)
|
|
root = tree.getroot()
|
|
|
|
# Обновляем значения
|
|
for string in root.findall("string"):
|
|
name = string.get("name")
|
|
if name in config.format:
|
|
string.text = config.format[name]
|
|
|
|
# Сохраняем обратно
|
|
tree.write(file_path, encoding="utf-8", xml_declaration=True, pretty_print=True)
|
|
|
|
return True
|