Files
patcher/patches/selectable_text.py
2025-12-28 17:47:56 +03:00

46 lines
1.4 KiB
Python

"""Делает текст в описании аниме копируемым
"selectable_text": {
"enabled": true
}
"""
__author__ = "wowlikon <wowlikon@gmail.com>"
__version__ = "1.0.0"
from typing import Any, Dict
from lxml import etree
from pydantic import Field
from utils.config import PatchTemplate
class Patch(PatchTemplate):
priority: int = Field(frozen=True, exclude=True, default=0)
def apply(self, base: Dict[str, Any]) -> bool:
file_path = "./decompiled/res/layout/release_info.xml"
parser = etree.XMLParser(remove_blank_text=True)
tree = etree.parse(file_path, parser)
root = tree.getroot()
# Список тегов, к которым нужно добавить атрибут
tags = ["TextView", "at.blogc.android.views.ExpandableTextView"]
for tag in tags:
for element in root.findall(f".//{tag}", namespaces=base["xml_ns"]):
# Проверяем, нет ли уже атрибута
if (
f"{{{base['xml_ns']['android']}}}textIsSelectable"
not in element.attrib
):
element.set(
f"{{{base['xml_ns']['android']}}}textIsSelectable", "true"
)
# Сохраняем
tree.write(file_path, encoding="utf-8", xml_declaration=True, pretty_print=True)
return True