Files
patcher/patches/todo_example.py
wowlikon 5ff882a8d5 Рефакторинг патчей, реализация Список патчей:
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, обновление описаний
2025-09-20 23:00:00 +03:00

39 lines
2.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
Шаблон патча
Здесь вы можете добавить описание патча, его назначение и другие детали.
Каждый патч должен независеть от других патчей и проверять себя при применении. Он не должен вернуть 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