Рефакторинг патчей, реализация Список патчей:

settings_urls: ✔ enabled
  disable_ad: ✔ enabled
  disable_beta_banner: ✔ enabled
  insert_new: ✔ enabled
  color_theme: ✔ enabled
  change_server: ✘ disabled
  package_name: ✔ enabled
  replace_navbar: ✔ enabled
  compress: ✔ enabled, обновление описаний
This commit is contained in:
2025-09-20 23:00:00 +03:00
parent 66336f3a5c
commit 5ff882a8d5
14 changed files with 142 additions and 60 deletions
+38
View File
@@ -0,0 +1,38 @@
"""
Шаблон патча
Здесь вы можете добавить описание патча, его назначение и другие детали.
Каждый патч должен независеть от других патчей и проверять себя при применении. Он не должен вернуть True, если есть проблемы.
На данный момент каждый патч должен иметь функцию `apply`, которая принимает на вход конфигурацию и возвращает True или False.
При успешном применении патча, функция apply должна вернуть True, иначе False.
Ошибка будет интерпретирована как False. С выводом ошибки в консоль.
Ещё патч должен иметь переменную `priority`, которая указывает приоритет патча, чем выше, тем раньше он будет применен.
Коротко о конфигурации. Она получается из `config.json` из config["patches"][patch_name].
Дополнительно в основном методе `apply` кроме этого есть "verbose" и содержимое "base".
Эти поля передаются всем патчам. `verbose` может быть указан так-же как флаг запуска:
```
python ./main.py build --verbose
```
В конце файла должно быть описание конфигурации патча.
Это может быть как короткий фрагмент из названия патча и одной опции "enabled", которая обрабатывается в коде патчера.
"todo_template": {
"enabled": true // Пример описания тк этот текст просто пример
}
"""
priority = 0 # Приоритет патча, чем выше, тем раньше он будет применен
# imports
from tqdm import tqdm
# Patch
def apply(config: dict) -> bool: # Анотации типов для удобства, читаемости и поддержки IDE
tqdm.write("Вывод информации через tqdm, чтобы не мешать прогресс-бару")
if config["verbose"]:
tqdm.write("Для вывода подробной и отладочной информации используйте флаг --verbose")
return True