replace-bot/handlers/private/main.py
2023-03-28 11:15:03 +03:00

105 lines
3.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import logging
import io
import base64
from aiogram import types
from aiogram.dispatcher.filters import ChatTypeFilter
from aiogram.dispatcher import FSMContext
from load import dp, bot, config
from keyboards.inline.keyboard import menu
from parser import get_about_replacements
from keyboards.inline.donate import donate
if config.enable_logging:
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"
"[Viber Bot](viber://pa?chatURI=tfk_replace)"
), parse_mode='Markdown'
)
@dp.message_handler(ChatTypeFilter(['private']), commands=['start', 'get'], state="*")
async def get_replace(message: types.Message, state: FSMContext):
if message.from_user.id in [int(i) for i in config.admin_users.split(',')] and str(message.get_args()).isdigit():
await bot.send_message(message.chat.id, "Напишите ответ")
await state.update_data(u=message.get_args())
await state.set_state(state="answer_support")
return
if config.enable_logging:
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.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()
if 'image' in data:
await bot.send_photo(
message.chat.id,
io.BytesIO(
base64.b64decode(
data["data"]['all']
)
),
parse_mode="Markdown",
reply_markup=donate
)
return
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.link)
)
await bot.send_message(
message.chat.id,
msg,
parse_mode='HTML',
disable_web_page_preview=True
)