It's my tg bot for schedule. version 0.1
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
from aiogram import types, Dispatcher, Bot
|
||||
from aiogram.filters import Command
|
||||
from models.state import BotState
|
||||
from services.schedule_service import ScheduleService
|
||||
from utils.antispam import is_chat_spam
|
||||
from storage.message_storage import save_message
|
||||
|
||||
|
||||
def register_handlers(dp: Dispatcher, state: BotState, bot: Bot):
|
||||
@dp.message(Command("rasp"))
|
||||
async def send_schedule(message: types.Message):
|
||||
"""Отправка расписания"""
|
||||
if is_chat_spam(message.chat.id, state):
|
||||
await message.answer("НЕ СПАМЬТЕ!!!")
|
||||
return
|
||||
|
||||
args = message.text.split(maxsplit=2)
|
||||
group = args[1].strip() if len(args) > 1 else "30тс"
|
||||
day_offset = int(args[2]) if len(args) > 2 and args[2].isdigit() else 0
|
||||
|
||||
schedule_service = ScheduleService()
|
||||
clip_png, url, day, mouth = await schedule_service.get_schedule(group, day_offset)
|
||||
|
||||
if clip_png:
|
||||
save_message(message.chat.id, message.message_id)
|
||||
|
||||
msg = await message.answer_photo(
|
||||
types.BufferedInputFile(clip_png, filename=f"{group}.png"),
|
||||
caption=f"Расписание для {group} на {day}.{mouth:02d}"
|
||||
)
|
||||
save_message(message.chat.id, msg.message_id)
|
||||
|
||||
state.file_id_cache[group.lower()] = msg.photo[-1].file_id
|
||||
else:
|
||||
await message.answer(f"Не удалось найти расписание для {group}")
|
||||
Reference in New Issue
Block a user