mirror of
https://github.com/MrSedan/neuro-reply-bot-reworked.git
synced 2026-01-15 05:59:43 +03:00
Refactoring: handlers now implemented as classes. Module structure
This commit is contained in:
@@ -1,12 +1,8 @@
|
||||
from typing import List
|
||||
|
||||
from aiogram import Bot, F, types
|
||||
from aiogram.enums import ChatMemberStatus
|
||||
from aiogram.filters import Command, CommandStart
|
||||
from aiogram import Bot
|
||||
|
||||
from handlers.handler import Handler
|
||||
from neuroapi import neuroapi
|
||||
from neuroapi.types import Admin as AdminType
|
||||
from handlers.message_handlers.forward_message import ForwardMessageCommand
|
||||
from handlers.message_handlers.start_command import StartCommand
|
||||
from neuroapi.types import BotSettings as BotSettingsType
|
||||
|
||||
|
||||
@@ -16,28 +12,7 @@ class UserCommands(Handler):
|
||||
def __init__(self, bot: Bot) -> None:
|
||||
super().__init__(bot)
|
||||
|
||||
@self.router.message(CommandStart())
|
||||
async def start_command(message: types.Message):
|
||||
await message.answer("Добро пожаловать! Данный бот - предложка для канала @neur0w0men. Отправляйте свои пожелания насчет нейрокартинок, а также свои картинки, а админы постараются заняться этим!\nДанный бот принимает текст, картинки, документы и стикеры.")
|
||||
|
||||
@self.router.message(F.chat.type == 'private')
|
||||
async def forward_post(message: types.Message):
|
||||
self.settings = BotSettingsType.get_active()
|
||||
user = await bot.get_chat_member(self.settings.channel, message.from_user.id)
|
||||
if user is None:
|
||||
await message.reply('Ошибка')
|
||||
return
|
||||
user_in_channel = user.status == ChatMemberStatus.LEFT
|
||||
admins: List[AdminType] = await neuroapi.admin.get()
|
||||
canReply = True
|
||||
for admin in admins:
|
||||
await bot.send_message(admin.user_id, f'Вам новое сообщение от пользователя {message.from_user.full_name}. ' +
|
||||
(f'\nНик: @{message.from_user.username}' if message.from_user.username else f'ID: {message.from_user.id}') +
|
||||
f'\nПользователь{" не " if user_in_channel else " "}состоит в канале')
|
||||
try:
|
||||
forwarded_message = await bot.forward_message(admin.user_id, message.chat.id, message.message_id)
|
||||
if forwarded_message.forward_from is None:
|
||||
canReply = False
|
||||
except:
|
||||
pass
|
||||
await message.reply('Ваше сообщение было отправлено администраторам'+('' if canReply else '\nНо они не смогут вам ответить из-за ваших настроек конфиденциальности.'))
|
||||
self.add_handlers([
|
||||
StartCommand,
|
||||
ForwardMessageCommand
|
||||
])
|
||||
Reference in New Issue
Block a user