mirror of
https://github.com/EDeev/circlechek.git
synced 2026-10-07 20:49:51 +03:00
- папка обработки была одна на чат: после первой же ошибки она оставалась, и все следующие кружочки в этом чате падали на os.mkdir — теперь своя временная папка на каждую обработку и уборка в любом случае; - кнопки фона знают свой кружочек: если прислать несколько подряд, обработается нужный; повторное нажатие отвечает подсказкой вместо ошибки; - покадровая обработка шла прямо в обработчике и блокировала бота для всех — вынесена в отдельный поток; - кружочек без звука падал на .audio.write_audiofile; - градиент по тёмным и светлым кадрам «переворачивался» (−10 в uint8 = 246): значения ограничены 0…255; средний цвет кадра считается NumPy, а не циклом по пикселям; - декоратор bug_report вызывал sys.exit() внутри обработчика — убран, ошибки логируются, пользователь получает сообщение; - видео, которое не удалось превратить в кружок, больше не остаётся на диске; - токен — из переменной BOT_TOKEN; ссылка «АВТОР» вела на чужой теперь профиль IGlek — заменена на EDeev; - requirements.txt: moviepy>=1.0.3 не подходил к коду под moviepy 2 — версии закреплены по работающему окружению.
18 lines
416 B
Python
18 lines
416 B
Python
import asyncio
|
|
import logging
|
|
|
|
from init import bot, dp
|
|
from handlers import router
|
|
|
|
|
|
async def main() -> None:
|
|
dp.include_router(router)
|
|
await bot.delete_webhook(drop_pending_updates=True)
|
|
await dp.start_polling(bot, allowed_updates=dp.resolve_used_update_types())
|
|
|
|
|
|
if __name__ == "__main__":
|
|
logging.basicConfig(level=logging.INFO)
|
|
|
|
try: asyncio.run(main())
|
|
except KeyboardInterrupt: pass
|