replace-bot/handlers/private/main.py

96 lines
3.1 KiB
Python
Raw Normal View History

2022-02-16 18:13:44 +03:00
import logging
2022-10-07 17:50:42 +03:00
import io
import base64
2022-02-16 18:13:44 +03:00
from aiogram import types
from aiogram.dispatcher.filters import ChatTypeFilter
from load import dp, bot, config
from keyboards.inline.keyboard import menu
from parser import get_about_replacements
if config.logging_user:
from database import register
@dp.message_handler(commands=["help"])
async def help_msg(message: types.Message):
await bot.send_message(
message.chat.id,
(
"Я всего-лишь небольшой помощник:3\n"
"Умею работать в чатах, для настройки попросите администратора чата указать группу с помощью команды /set\n"
"/set - Установить группу, для получения данных о заменах(Работает ТОЛЬКО в чатах)\n"
"/start /get - получить информацию о заменах\n"
)
)
@dp.message_handler(ChatTypeFilter(['private']), commands=['start', 'get'])
async def get_replace(message: types.Message):
if config.logging_user:
register(
user_id=message.from_user.id,
username=message.from_user.username,
first_name=str(message.from_user.first_name),
last_name=message.from_user.last_name
)
link = (
'<a href="{}">Проверьте замены тут</a>'
.format(config.bot("link"))
)
logging.info("User: {user_id} - {username}".format(
user_id=str(message.from_user.id),
username=str(message.from_user.username)
))
try:
data = get_about_replacements()
2022-10-07 17:50:42 +03:00
if 'image' in data:
await bot.send_photo(
message.chat.id,
io.BytesIO(
base64.b64decode(
data["data"]['all']
)
),
parse_mode="Markdown",
)
return
2022-02-16 18:13:44 +03:00
await bot.send_message(
message.chat.id,
"Замены {date}\n{teacher}\nВыберите свою группу"
.format(
date=data["date"].lower(),
teacher=str(data["another_teacher"]).title()
),
reply_markup=menu(data["data"])
)
except Exception as e:
logging.error(str(e))
err_msg = (
"Техничиские шоколадки... "
f"Скорее всего структура файла была изменена\n{link}"
)
await bot.send_message(
message.chat.id,
err_msg,
parse_mode='HTML',
disable_web_page_preview=True
)
@dp.message_handler(commands=['link'])
async def get_link(message: types.Message):
msg = (
'<a href="{}">Проверьте замены тут</a>'
.format(config.bot("link"))
)
await bot.send_message(
message.chat.id,
msg,
parse_mode='HTML',
disable_web_page_preview=True
)