![]() |
Бот Moderator с управлением чата, участников.
Выдача рангов администрации взято под основу как у Iris Установка бота moder.py откройте в блокноте замените токен на свой! Где взять токен? Перейдите в бота @BotFather, создайте бота в нем и скопируйте ваш токен. Запуск бота! Распакуйте архив в любое для вас удобное место, установите последнию версию Python Установите зависимости для бота в командной строке pip install python-telegram-bot пароль от архива: 123123 |
Цитата:
|
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Отличный пример говнокода. Всё сделано через одно место.
Во-первых, вся логика и обработка команд свалены в один гигантский файл. Вместо нормального разделения на handlers.py, database.py, utils.py — там просто огромная плеяда десятков функций подряд, например: Python: Код:
asyncКаждая из этих функций делает почти одно и то же, но код повторяется слово в слово. Во-вторых, вместо СУБД используется JSON: Python: Код:
DATA_FILEи потом в десятках мест: Python: Код:
dataПри параллельных записях файл запросто повредится. Надо юзать SQLite или PostgreSQL. Третье — асинхронность нарушена: код объявлен как async, но внутри есть блокирующие операции: Python: Код:
withПолучаем блокировку event loop'а и торможение бота при любой записи. К этому добавляем глобал переменные и хардкод по всему коду: Python: Код:
RANKSтакое нельзя держать в коде, нужно выносить в переменные окружения. Отдельно отмечу, что python-telegram-bot — не лучший выбор для такого бота. Он громоздкий, неудобен для масштабных ботов и плохо справляется с асинхронностью. Тут лучше юзать aiogram. В итоге имеем: 1. Монолитный код без адекватной структуры 2. JSON вместо СУБД 3. Дублирование функций 4. Блокирующие вызовы в async-коде 5. Хардкод токенов и рангов Проще будет реально переписать с нуля: сделать отдельный модуль для БД, разбить проект на файлы и настроить нормальные хендлеры. P.s. пишу с телефона, поэтому мне лень расставлять табы в блоках с кодом |
Цитата:
|
Цитата:
|
Цитата:
|
| Время: 19:29 |