Админ модуль: удаление сообщений

Модуль фильтров
Добавлены роутеры
This commit is contained in:
ilyazheprog
2024-02-12 14:55:14 +07:00
parent d71fef0fed
commit 88f40c7f82
12 changed files with 73 additions and 12 deletions

View File

@@ -0,0 +1 @@
from . import routers

View File

@@ -0,0 +1,10 @@
from aiogram import Bot
from aiogram.types import Message
async def delete_message(message: Message, bot: Bot):
reply_message_id = message.reply_to_message.message_id
await bot.delete_message(message.chat.id, reply_message_id)
async def delete_message_error_access(message: Message, bot: Bot):
await message.reply("Вы не админ/модератор")

View File

@@ -0,0 +1,6 @@
{
"name": "Admin",
"description": "Модуль для работы с админкой",
"author": "OCAB Team",
"version": "1.0"
}

View File

@@ -0,0 +1,8 @@
from aiogram import Router, F
from src.modules.standard.admin.handlers import delete_message, delete_message_error_access
from src.modules.standard.filters.admin import ChatModerOrAdminFilter
router = Router()
router.message.register(delete_message, ChatModerOrAdminFilter(), F.text == '/rm')
router.message.register(delete_message_error_access, F.text == '/rm')

View File

@@ -12,14 +12,18 @@ def get_config(is_test: bool = False) -> dict:
with open(path, 'r') as file:
return yaml.full_load(file)
config = get_config()
def get_telegram_token() -> str:
return config["TELEGRAM"]["TOKEN"]
def get_yandexgpt_token() -> str:
return get_config()["YANDEX_GPT_TOKEN"]
return config["YANDEX_GPT_TOKEN"]
def get_yandexgpt_catalog_id() -> str:
return get_config()["YANDEX_GPT_CATALOG_ID"]
return config["YANDEX_GPT_CATALOG_ID"]
def get_yandexgpt_prompt() -> str:
return get_config()["YANDEX_GPT_PROMPT"]
return config["YANDEX_GPT_PROMPT"]

View File

@@ -22,6 +22,8 @@ def connect_database(is_test: bool = False, module: str | None = None):
Chats._meta.database = _database
Messages._meta.database = _database
Users._meta.database = _database
UserStats._meta.database = _database
ChatStats._meta.database = _database
return _database, f"{db_path}/OCAB.db"

View File

View File

@@ -0,0 +1,11 @@
from aiogram.filters import BaseFilter
from aiogram.types import Message
from src.modules.standard.roles.api import Roles
class ChatModerOrAdminFilter(BaseFilter):
async def __call__(self, message: Message) -> bool:
user_id = message.from_user.id
roles = Roles()
return await roles.check_admin_permission(user_id) or \
await roles.check_moderator_permission(user_id)

View File

@@ -0,0 +1,6 @@
{
"name": "Filters",
"description": "Модуль с фильтрами",
"author": "OCAB Team",
"version": "1.0"
}