fixes, chat handlers
Some checks reported errors
continuous-integration/drone/push Build encountered an error
Some checks reported errors
continuous-integration/drone/push Build encountered an error
This commit is contained in:
@@ -12,16 +12,12 @@ from src.core.chat_services import (
|
||||
from src.core.services import UserService
|
||||
from src.core.database import async_session_maker
|
||||
from src.core.config import ADMIN_IDS
|
||||
from src.core.permissions import admin_only
|
||||
|
||||
|
||||
router = Router(name='admin_chat_router')
|
||||
|
||||
|
||||
def is_admin(user_id: int) -> bool:
|
||||
"""Проверка является ли пользователь админом"""
|
||||
return user_id in ADMIN_IDS
|
||||
|
||||
|
||||
def get_chat_mode_keyboard() -> InlineKeyboardMarkup:
|
||||
"""Клавиатура выбора режима чата"""
|
||||
return InlineKeyboardMarkup(inline_keyboard=[
|
||||
@@ -34,11 +30,9 @@ def get_chat_mode_keyboard() -> InlineKeyboardMarkup:
|
||||
|
||||
|
||||
@router.message(Command("chat_mode"))
|
||||
@admin_only
|
||||
async def cmd_chat_mode(message: Message):
|
||||
"""Команда управления режимом чата"""
|
||||
if not is_admin(message.from_user.id):
|
||||
await message.answer("❌ У вас нет прав для выполнения этой команды")
|
||||
return
|
||||
|
||||
async with async_session_maker() as session:
|
||||
settings = await ChatSettingsService.get_or_create_settings(session)
|
||||
@@ -57,9 +51,6 @@ async def cmd_chat_mode(message: Message):
|
||||
@router.callback_query(F.data.startswith("chat_mode:"))
|
||||
async def process_chat_mode(callback: CallbackQuery):
|
||||
"""Обработка выбора режима чата"""
|
||||
if not is_admin(callback.from_user.id):
|
||||
await callback.answer("❌ У вас нет прав", show_alert=True)
|
||||
return
|
||||
|
||||
mode = callback.data.split(":")[1]
|
||||
|
||||
@@ -78,11 +69,9 @@ async def process_chat_mode(callback: CallbackQuery):
|
||||
|
||||
|
||||
@router.message(Command("set_forward"))
|
||||
@admin_only
|
||||
async def cmd_set_forward(message: Message):
|
||||
"""Установить ID канала для пересылки"""
|
||||
if not is_admin(message.from_user.id):
|
||||
await message.answer("❌ У вас нет прав для выполнения этой команды")
|
||||
return
|
||||
|
||||
args = message.text.split(maxsplit=1)
|
||||
if len(args) < 2:
|
||||
@@ -112,11 +101,9 @@ async def cmd_set_forward(message: Message):
|
||||
|
||||
|
||||
@router.message(Command("global_ban"))
|
||||
@admin_only
|
||||
async def cmd_global_ban(message: Message):
|
||||
"""Включить/выключить глобальный бан чата"""
|
||||
if not is_admin(message.from_user.id):
|
||||
await message.answer("❌ У вас нет прав для выполнения этой команды")
|
||||
return
|
||||
|
||||
async with async_session_maker() as session:
|
||||
settings = await ChatSettingsService.get_or_create_settings(session)
|
||||
@@ -140,11 +127,9 @@ async def cmd_global_ban(message: Message):
|
||||
|
||||
|
||||
@router.message(Command("ban"))
|
||||
@admin_only
|
||||
async def cmd_ban(message: Message):
|
||||
"""Забанить пользователя"""
|
||||
if not is_admin(message.from_user.id):
|
||||
await message.answer("❌ У вас нет прав для выполнения этой команды")
|
||||
return
|
||||
|
||||
# Проверяем является ли это ответом на сообщение
|
||||
if message.reply_to_message:
|
||||
@@ -201,11 +186,9 @@ async def cmd_ban(message: Message):
|
||||
|
||||
|
||||
@router.message(Command("unban"))
|
||||
@admin_only
|
||||
async def cmd_unban(message: Message):
|
||||
"""Разбанить пользователя"""
|
||||
if not is_admin(message.from_user.id):
|
||||
await message.answer("❌ У вас нет прав для выполнения этой команды")
|
||||
return
|
||||
|
||||
# Проверяем является ли это ответом на сообщение
|
||||
if message.reply_to_message:
|
||||
@@ -244,11 +227,9 @@ async def cmd_unban(message: Message):
|
||||
|
||||
|
||||
@router.message(Command("banlist"))
|
||||
@admin_only
|
||||
async def cmd_banlist(message: Message):
|
||||
"""Показать список забаненных пользователей"""
|
||||
if not is_admin(message.from_user.id):
|
||||
await message.answer("❌ У вас нет прав для выполнения этой команды")
|
||||
return
|
||||
|
||||
async with async_session_maker() as session:
|
||||
banned_users = await BanService.get_banned_users(session, active_only=True)
|
||||
@@ -276,11 +257,9 @@ async def cmd_banlist(message: Message):
|
||||
|
||||
|
||||
@router.message(Command("delete_msg"))
|
||||
@admin_only
|
||||
async def cmd_delete_message(message: Message):
|
||||
"""Удалить сообщение из чата (пометить как удаленное)"""
|
||||
if not is_admin(message.from_user.id):
|
||||
await message.answer("❌ У вас нет прав для выполнения этой команды")
|
||||
return
|
||||
|
||||
if not message.reply_to_message:
|
||||
await message.answer(
|
||||
@@ -339,11 +318,9 @@ async def cmd_delete_message(message: Message):
|
||||
|
||||
|
||||
@router.message(Command("chat_stats"))
|
||||
@admin_only
|
||||
async def cmd_chat_stats(message: Message):
|
||||
"""Статистика чата"""
|
||||
if not is_admin(message.from_user.id):
|
||||
await message.answer("❌ У вас нет прав для выполнения этой команды")
|
||||
return
|
||||
|
||||
async with async_session_maker() as session:
|
||||
settings = await ChatSettingsService.get_or_create_settings(session)
|
||||
|
||||
Reference in New Issue
Block a user