79 lines
2.6 KiB
Python
79 lines
2.6 KiB
Python
"""Заменяет сервер api
|
||
|
||
"change_server": {
|
||
"enabled": true,
|
||
"server": "https://anixarts.0x174.su/patch"
|
||
}
|
||
"""
|
||
|
||
__author__ = "wowlikon <wowlikon@gmail.com>"
|
||
__version__ = "1.0.0"
|
||
import json
|
||
from typing import Any, Dict
|
||
|
||
import requests
|
||
from pydantic import Field
|
||
from tqdm import tqdm
|
||
|
||
from utils.config import PatchTemplate
|
||
|
||
|
||
class Patch(PatchTemplate):
|
||
priority: int = Field(frozen=True, exclude=True, default=0)
|
||
server: str = Field("https://anixarts.0x174.su/patch", description="URL сервера")
|
||
|
||
def apply(self, base: Dict[str, Any]) -> bool:
|
||
response = requests.get(self.server) # Получаем данные для патча
|
||
assert (
|
||
response.status_code == 200
|
||
), f"Failed to fetch data {response.status_code} {response.text}"
|
||
|
||
new_api = json.loads(response.text)
|
||
for item in new_api["modifications"]: # Применяем замены API
|
||
tqdm.write(f"Изменение {item['file']}")
|
||
filepath = (
|
||
"./decompiled/smali_classes2/com/swiftsoft/anixartd/network/api/"
|
||
+ item["file"]
|
||
)
|
||
|
||
with open(filepath, "r") as f:
|
||
content = f.read()
|
||
|
||
with open(filepath, "w") as f:
|
||
if content.count(item["src"]) == 0:
|
||
tqdm.write(f"⚠ Не найдено {item['src']}")
|
||
f.write(content.replace(item["src"], item["dst"]))
|
||
|
||
tqdm.write(
|
||
f"Изменение Github ссылки"
|
||
) # Обновление ссылки на поиск серверов в Github
|
||
filepath = "./decompiled/smali_classes2/com/swiftsoft/anixartd/utils/anixnet/GithubPagesNetFetcher.smali"
|
||
|
||
with open(filepath, "r") as f:
|
||
content = f.read()
|
||
|
||
with open(filepath, "w") as f:
|
||
f.write(
|
||
content.replace(
|
||
'const-string v1, "https://anixhelper.github.io/pages/urls.json"',
|
||
f'const-string v1, "{new_api["gh"]}"',
|
||
)
|
||
)
|
||
|
||
tqdm.write(
|
||
"Удаление динамического выбора сервера"
|
||
) # Отключение автовыбора сервера
|
||
filepath = "./decompiled/smali_classes2/com/swiftsoft/anixartd/DaggerApp_HiltComponents_SingletonC$SingletonCImpl$SwitchingProvider.smali"
|
||
|
||
content = ""
|
||
with open(filepath, "r") as f:
|
||
for line in f.readlines():
|
||
if "addInterceptor" in line:
|
||
continue
|
||
content += line
|
||
|
||
with open(filepath, "w") as f:
|
||
f.write(content)
|
||
|
||
return True
|