From f46425b169d71393481dbf7a63c31aa8ed5d1154 Mon Sep 17 00:00:00 2001 From: wowlikon Date: Thu, 2 Oct 2025 17:13:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B0=D1=82=D1=87=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=BC=D0=B5=D0=BD=D1=8B=20=D1=82=D0=B5=D0=BA?= =?UTF-8?q?=D1=81=D1=82=D0=B0=20=D1=81=D1=81=D1=8B=D0=BB=D0=BE=D0=BA=20?= =?UTF-8?q?=D0=B2=20"=D0=BF=D0=BE=D0=B4=D0=B5=D0=BB=D0=B8=D1=82=D1=8C?= =?UTF-8?q?=D1=81=D1=8F"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- configs/share_links.json | 1 + patches/package_name.py | 2 +- patches/share_links.py | 53 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 configs/share_links.json create mode 100644 patches/share_links.py diff --git a/configs/share_links.json b/configs/share_links.json new file mode 100644 index 0000000..a5e118a --- /dev/null +++ b/configs/share_links.json @@ -0,0 +1 @@ +{"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"}} \ No newline at end of file diff --git a/patches/package_name.py b/patches/package_name.py index 4e33a0b..1496995 100644 --- a/patches/package_name.py +++ b/patches/package_name.py @@ -11,8 +11,8 @@ priority = -1 # imports import os -from lxml import etree from tqdm import tqdm +from lxml import etree from typing import Dict, Any from pydantic import Field diff --git a/patches/share_links.py b/patches/share_links.py new file mode 100644 index 0000000..bfc4620 --- /dev/null +++ b/patches/share_links.py @@ -0,0 +1,53 @@ +""" + Изменяет формат "поделиться" + +"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) + +# 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