HELPER Discord Bot
← Назад к ленте изменений
12.05.2026 Магазин Внедрено

Магазин переведён на модульную архитектуру

Большой shop_cog.py был разделён на понятные файлы без потери функций магазина, форума и синхронизации с сайтом.

Магазин стал проще поддерживать: логика, база данных, настройки, embeds, views и модалки теперь лежат отдельно. Внешне для клиентов всё осталось привычным, но внутри код стал профессиональнее и безопаснее для будущих правок.

Почему мы это сделали

Раньше весь магазин находился в одном огромном файле. Любая маленькая правка могла затронуть лишние части: кнопки, базу, форумные темы, выдачу ролей или синхронизацию сайта. После разделения каждая зона отвечает только за свою задачу.

  • Меньше риска случайно сломать магазин при изменении дизайна.
  • Проще находить нужный код: кнопки отдельно, база отдельно, embeds отдельно.
  • Будущие обновления можно делать точечно, без переписывания всего файла.
  • Форумный каталог, заявки, балансы и личные дела сохранили совместимость.

Что изменилось внутри

Главный файл cogs/shop_cog.py теперь работает как входная точка. Он подключает ShopCog из папки cogs/shop, где код разложен по назначению.

  • cogs/shop/cog.py — основная логика Cog и команды.
  • cogs/shop/database.py — SQLite, балансы, покупки, история, выдачи.
  • cogs/shop/views.py — кнопки, меню, staff-панели и форумная покупка.
  • cogs/shop/embeds.py — внешний вид Discord-сообщений.
  • cogs/shop/settings.py — настройки сайта, JSON, deploy_requested и hash-синхронизация.
  • cogs/shop/utils.py — безопасные функции, цвета, ID, текст, даты.
  • cogs/shop/modals.py — модальные окна Discord.

Что осталось без изменений для пользователей

Игроки и staff не должны почувствовать поломок. Панель магазина, каталог, заявки на покупку, авто-выдача ролей/доступов, личные дела и логи продолжают работать по старой логике.

  • Старые настройки серверов сохраняются по guild_id.
  • Старые базы данных не удаляются и не пересоздаются.
  • Кнопки магазина остаются persistent после перезапуска.
  • Если модуль отключён на сайте, Discord-панель показывает безопасный disabled-статус.

Что стало лучше

Теперь при будущей правке мы сможем менять только конкретную часть. Например, дизайн карточек меняется в embeds.py, кнопки — в views.py, работа с базой — в database.py.

  • Быстрее искать ошибки.
  • Меньше конфликтов при обновлениях через GitHub.
  • Проще переносить такую структуру на другие модули HELPER.
  • Код стал ближе к профессиональной структуре production-проекта.

Файлы

cogs/shop_cog.pyлёгкий loader для старой системы загрузки cog-файлов
cogs/shop/cog.pyосновной класс ShopCog, команды и deploy
cogs/shop/database.pySQLite, покупки, балансы, выдачи и история
cogs/shop/views.pyкнопки, select-меню, staff-панели, форумный buy
cogs/shop/settings.pyнастройки сайта, hash, module_states, JSON
cogs/shop/embeds.pyкрасивые Discord embed-сообщения
cogs/shop/modals.pyмодальные окна
cogs/shop/utils.pyобщие безопасные утилиты

Проверки

  • python3 -m py_compile cogs/shop_cog.py cogs/shop/*.py — успешно
  • import cogs.shop_cog — успешно
  • ShopCog import — успешно
  • helperbot.service после перезапуска активен
  • shop_ready split_module=True в логах