Files
patcher/patches/color_theme.py
2025-08-24 13:09:00 +03:00

58 lines
2.0 KiB
Python

# Change application theme
import re
def apply(config: dict) -> bool:
main_color = config["theme"]["colors"]["primary"]
splash_color = config["theme"]["colors"]["secondary"]
gradient_from = config["theme"]["gradient"]["from"]
gradient_to = config["theme"]["gradient"]["to"]
# No connection alert coolor
with open("./decompiled/assets/no_connection.html", "r", encoding="utf-8") as file:
file_contents = file.read()
new_contents = file_contents.replace("#f04e4e", main_color)
with open("./decompiled/assets/no_connection.html", "w", encoding="utf-8") as file:
file.write(new_contents)
# For logo
drawable_types = ["", "-night"]
for drawable_type in drawable_types:
# Application logo gradient colors
file_path = f"./decompiled/res/drawable{drawable_type}/$logo__0.xml"
with open(file_path, "r", encoding="utf-8") as file:
content = file.read()
pattern = r'android:startColor="(#[0-9a-fA-F]{8})"\s+android:endColor="(#[0-9a-fA-F]{8})"'
def replace_colors(match):
return (
f'android:startColor="{gradient_from}" android:endColor="{gradient_to}"'
)
new_content = re.sub(pattern, replace_colors, content).replace("\n ", "")
with open(file_path, "w", encoding="utf-8") as file:
file.write(new_content)
# Application logo anim color
file_path = f"./decompiled/res/drawable{drawable_type}/$logo_splash_anim__0.xml"
with open(file_path, "r", encoding="utf-8") as file:
content = file.read()
pattern = r'android:name="path" android:fillColor="(#[0-9a-fA-F]{8})"'
def replace_colors(match):
return f'android:name="path" android:fillColor="{splash_color}"'
new_content = re.sub(pattern, replace_colors, content).replace("\n ", " ", 1)
with open(file_path, "w", encoding="utf-8") as file:
file.write(new_content)
return True