mirror of
https://github.com/MrSedan/neuro-reply-bot-reworked.git
synced 2026-01-14 21:49:42 +03:00
reply from admin to user
This commit is contained in:
@@ -11,6 +11,7 @@ from sqlalchemy.orm import Session
|
|||||||
from db.data import Admin, Image, Post, User, engine
|
from db.data import Admin, Image, Post, User, engine
|
||||||
from handlers.filters.new_post import (ChangePosts, NewPostFilter,
|
from handlers.filters.new_post import (ChangePosts, NewPostFilter,
|
||||||
NewSoloPostFilter)
|
NewSoloPostFilter)
|
||||||
|
from handlers.filters.reply_to_user import ReplyToUser
|
||||||
from handlers.middlewares.user import AdminMiddleware
|
from handlers.middlewares.user import AdminMiddleware
|
||||||
from handlers.states.change_post import ChangePost
|
from handlers.states.change_post import ChangePost
|
||||||
|
|
||||||
@@ -224,6 +225,17 @@ class Admin_commands:
|
|||||||
session.commit()
|
session.commit()
|
||||||
await message.answer('Пост успешно добавлен!')
|
await message.answer('Пост успешно добавлен!')
|
||||||
|
|
||||||
|
@self.router.message(ReplyToUser())
|
||||||
|
async def reply_user(message: types.Message):
|
||||||
|
if message.reply_to_message.forward_from is None:
|
||||||
|
await message.reply('Пользователь стесняшка и не разрешает отвечать на его сообщения...')
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
await bot.send_message(message.reply_to_message.forward_from.id, f'Вам ответил админ:\n{message.text}')
|
||||||
|
await message.reply('Ваше сообщение было отправлено!')
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
|
||||||
def __call__(self, *args: Any, **kwds: Any) -> Router:
|
def __call__(self, *args: Any, **kwds: Any) -> Router:
|
||||||
return self.router
|
return self.router
|
||||||
|
|
||||||
|
|||||||
@@ -33,8 +33,9 @@ class NewPostFilter(Filter):
|
|||||||
|
|
||||||
class NewSoloPostFilter(Filter):
|
class NewSoloPostFilter(Filter):
|
||||||
async def __call__(self, message: types.Message) -> bool:
|
async def __call__(self, message: types.Message) -> bool:
|
||||||
return message.media_group_id is None and message.content_type == 'photo' and message.caption.startswith('/newpost ')
|
return message.media_group_id is None and message.content_type == 'photo' and message.caption and message.caption.startswith('/newpost ')
|
||||||
|
|
||||||
|
|
||||||
class ChangePosts(Filter):
|
class ChangePosts(Filter):
|
||||||
async def __call__(self, message: types.Message) -> bool:
|
async def __call__(self, message: types.Message) -> bool:
|
||||||
return message.text and message.text.startswith("/change") and message.chat.type == 'private'
|
return message.text and message.text.startswith("/change") and message.chat.type == 'private'
|
||||||
|
|||||||
10
handlers/filters/reply_to_user.py
Normal file
10
handlers/filters/reply_to_user.py
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
from typing import Any
|
||||||
|
from aiogram import types
|
||||||
|
from aiogram.filters import Filter
|
||||||
|
|
||||||
|
|
||||||
|
class ReplyToUser(Filter):
|
||||||
|
async def __call__(self, message: types.Message) -> bool:
|
||||||
|
if message.reply_to_message is None or message.chat.type != 'private':
|
||||||
|
return False
|
||||||
|
return True
|
||||||
Reference in New Issue
Block a user