mirror of
https://github.com/MrSedan/neuro-reply-bot-reworked.git
synced 2026-01-15 05:59:43 +03:00
added forwarding messages to admins.
This commit is contained in:
35
handlers/user_commands.py
Normal file
35
handlers/user_commands.py
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
from typing import Any
|
||||||
|
from aiogram import Bot, Router, types, F
|
||||||
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
|
from db.data import Admin, Image, Post, Admin, engine
|
||||||
|
|
||||||
|
|
||||||
|
class User_commands:
|
||||||
|
bot: Bot
|
||||||
|
router: Router
|
||||||
|
|
||||||
|
def __init__(self, bot: Bot) -> None:
|
||||||
|
self.bot = bot
|
||||||
|
self.router = Router()
|
||||||
|
|
||||||
|
@self.router.message(F.chat.type == 'private')
|
||||||
|
async def forward_post(message: types.Message):
|
||||||
|
|
||||||
|
with Session(engine) as session:
|
||||||
|
admins = session.query(Admin).all()
|
||||||
|
canReply = True
|
||||||
|
for a in admins:
|
||||||
|
await bot.send_message(a.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}'))
|
||||||
|
forwarded_message = await bot.forward_message(a.user_id, message.chat.id, message.message_id)
|
||||||
|
if forwarded_message.forward_from is None:
|
||||||
|
canReply = False
|
||||||
|
await message.reply('Ваше сообщение было отправлено администраторам'+('' if canReply else '\nНо они не смогут вам ответить из-за ваших настроек конфиденциальности.'))
|
||||||
|
|
||||||
|
def __call__(self, *args: Any, **kwds: Any) -> Router:
|
||||||
|
return self.router
|
||||||
|
|
||||||
|
|
||||||
|
def setup(bot: Bot) -> Router:
|
||||||
|
return User_commands(bot)()
|
||||||
Reference in New Issue
Block a user