generated from FOSS/Bot-Template
style: reformat imports, whitespace and line breaks across project
This commit is contained in:
@@ -15,6 +15,7 @@ def register_all_routers(dp: Dispatcher):
|
||||
|
||||
user_menu.router.message.filter(IsPrivate())
|
||||
user_menu.router.callback_query.filter(IsPrivate())
|
||||
|
||||
admin_menu.router.message.filter(IsPrivate(), IsAdmin())
|
||||
admin_menu.router.callback_query.filter(IsPrivate(), IsAdmin())
|
||||
|
||||
|
||||
@@ -22,33 +22,20 @@ SERVICE_LOG_FILES = (
|
||||
|
||||
|
||||
# Кнопка админского меню
|
||||
@router.message(F.text == 'Админ-меню')
|
||||
async def admin_button_inline(message: Message, bot: Bot, state: FSM, arSession: ARS, User: UserModel):
|
||||
@router.message(F.text == "Админ-меню")
|
||||
async def admin_button_inline(
|
||||
message: Message, bot: Bot, state: FSM, arSession: ARS, User: UserModel
|
||||
):
|
||||
await state.clear()
|
||||
|
||||
await message.answer(
|
||||
"Инлайн-клавиатура админа",
|
||||
reply_markup=admin_finl()
|
||||
)
|
||||
|
||||
|
||||
# Колбэк для демо-действия админа
|
||||
@router.callback_query(F.data == 'admin_inline_x')
|
||||
async def admin_callback_inline_x(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS, User: UserModel):
|
||||
await call.answer("Админское действие выполнено")
|
||||
|
||||
|
||||
# Колбэк с параметром из админской кнопки
|
||||
@router.callback_query(F.data.startswith('admin_inline:'))
|
||||
async def admin_callback_inline(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS, User: UserModel):
|
||||
get_data = call.data.split(":")[1]
|
||||
|
||||
await call.answer(f"Выбран админский раздел: {get_data}", True)
|
||||
await message.answer("Инлайн-клавиатура админа", reply_markup=admin_finl())
|
||||
|
||||
|
||||
# Отправка файла базы админам
|
||||
@router.message(Command(commands=['db', 'database']))
|
||||
async def admin_database(message: Message, bot: Bot, state: FSM, arSession: ARS, User: UserModel):
|
||||
@router.message(Command(commands=["db", "database"]))
|
||||
async def admin_database(
|
||||
message: Message, bot: Bot, state: FSM, arSession: ARS, User: UserModel
|
||||
):
|
||||
await state.clear()
|
||||
|
||||
if not BOT_DATABASE_EXPORT:
|
||||
@@ -66,8 +53,10 @@ async def admin_database(message: Message, bot: Bot, state: FSM, arSession: ARS,
|
||||
|
||||
|
||||
# Отправка логов админам
|
||||
@router.message(Command(commands=['log', 'logs']))
|
||||
async def admin_log(message: Message, bot: Bot, state: FSM, arSession: ARS, User: UserModel):
|
||||
@router.message(Command(commands=["log", "logs"]))
|
||||
async def admin_log(
|
||||
message: Message, bot: Bot, state: FSM, arSession: ARS, User: UserModel
|
||||
):
|
||||
await state.clear()
|
||||
|
||||
log_files = []
|
||||
@@ -95,8 +84,12 @@ async def admin_log(message: Message, bot: Bot, state: FSM, arSession: ARS, User
|
||||
|
||||
|
||||
# Очистка файлов логов
|
||||
@router.message(Command(commands=['clear_log', 'clear_logs', 'log_clear', 'logs_clear']))
|
||||
async def admin_logs_clear(message: Message, bot: Bot, state: FSM, arSession: ARS, User: UserModel):
|
||||
@router.message(
|
||||
Command(commands=["clear_log", "clear_logs", "log_clear", "logs_clear"])
|
||||
)
|
||||
async def admin_logs_clear(
|
||||
message: Message, bot: Bot, state: FSM, arSession: ARS, User: UserModel
|
||||
):
|
||||
await state.clear()
|
||||
|
||||
log_files = [Path(PATH_LOGS), *SERVICE_LOG_FILES]
|
||||
|
||||
@@ -21,7 +21,9 @@ router = Router(name=__name__)
|
||||
class MessageNotModifiedHandler(ErrorHandler):
|
||||
async def handle(self):
|
||||
if "message is not modified" in self.exception_message.lower():
|
||||
bot_logger.debug("Telegram отклонил повторное редактирование сообщения без изменений")
|
||||
bot_logger.debug(
|
||||
"Telegram отклонил повторное редактирование сообщения без изменений"
|
||||
)
|
||||
return True
|
||||
|
||||
raise self.event
|
||||
|
||||
@@ -10,27 +10,34 @@ router = Router(name=__name__)
|
||||
|
||||
|
||||
# Колбэк для удаления текущего сообщения
|
||||
@router.callback_query(F.data == 'close_this')
|
||||
async def main_callback_close(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS, User: ModelUsers):
|
||||
@router.callback_query(F.data == "close_this")
|
||||
async def main_callback_close(
|
||||
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS, User: ModelUsers
|
||||
):
|
||||
await del_message(call.message)
|
||||
|
||||
|
||||
# Колбэк-заглушка для пустых кнопок
|
||||
@router.callback_query(F.data == '...')
|
||||
async def main_callback_answer(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS, User: ModelUsers):
|
||||
@router.callback_query(F.data == "...")
|
||||
async def main_callback_answer(
|
||||
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS, User: ModelUsers
|
||||
):
|
||||
await call.answer(cache_time=30)
|
||||
|
||||
|
||||
# Ответ на колбэк, который никто не обработал
|
||||
@router.callback_query()
|
||||
async def main_callback_missed(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS, User: ModelUsers):
|
||||
async def main_callback_missed(
|
||||
call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS, User: ModelUsers
|
||||
):
|
||||
await call.answer(f"❗️ Неизвестный колбэк: {call.data}", True)
|
||||
|
||||
|
||||
# Ответ на неизвестные сообщения
|
||||
@router.message()
|
||||
async def main_message_missed(message: Message, bot: Bot, state: FSM, arSession: ARS, User: ModelUsers):
|
||||
async def main_message_missed(
|
||||
message: Message, bot: Bot, state: FSM, arSession: ARS, User: ModelUsers
|
||||
):
|
||||
await message.answer(
|
||||
"♦️ Неизвестная команда\n"
|
||||
"♦️ Введите /start",
|
||||
"♦️ Неизвестная команда\n" "♦️ Введите /start",
|
||||
)
|
||||
|
||||
@@ -12,9 +12,11 @@ router = Router(name=__name__)
|
||||
|
||||
|
||||
# Главное меню пользователя
|
||||
@router.message(F.text.in_(('menu', 'return', 'start')))
|
||||
@router.message(Command(commands=['start']))
|
||||
async def main_start(message: Message, bot: Bot, state: FSM, arSession: ARS, User: UserModel):
|
||||
# @router.message(F.text.in_(("menu", "return", "start")))
|
||||
# @router.message(Command(commands=["start"]))
|
||||
async def main_start(
|
||||
message: Message, bot: Bot, state: FSM, arSession: ARS, User: UserModel
|
||||
):
|
||||
await state.clear()
|
||||
|
||||
await message.answer(
|
||||
|
||||
@@ -12,36 +12,23 @@ router = Router(name=__name__)
|
||||
|
||||
|
||||
# Кнопка пользовательского меню
|
||||
@router.message(F.text == 'Пользовательское меню')
|
||||
async def user_button_inline(message: Message, bot: Bot, state: FSM, arSession: ARS, User: UserModel):
|
||||
# @router.message(F.text == "Пользовательское меню")
|
||||
async def user_button_inline(
|
||||
message: Message, bot: Bot, state: FSM, arSession: ARS, User: UserModel
|
||||
):
|
||||
await state.clear()
|
||||
|
||||
await message.answer(
|
||||
"Инлайн-клавиатура пользователя",
|
||||
reply_markup=user_finl()
|
||||
)
|
||||
await message.answer("Инлайн-клавиатура пользователя", reply_markup=user_finl())
|
||||
|
||||
|
||||
# Команда возврата в меню
|
||||
@router.message(Command(commands="menu"))
|
||||
async def user_command_menu(message: Message, bot: Bot, state: FSM, arSession: ARS, User: UserModel):
|
||||
# @router.message(Command(commands="menu"))
|
||||
async def user_command_menu(
|
||||
message: Message, bot: Bot, state: FSM, arSession: ARS, User: UserModel
|
||||
):
|
||||
await state.clear()
|
||||
|
||||
await message.answer(
|
||||
"Команда /menu открывает главное меню",
|
||||
reply_markup=menu_frep(message.from_user.id),
|
||||
)
|
||||
|
||||
|
||||
# Колбэк для демо-действия
|
||||
@router.callback_query(F.data == 'user_inline_x')
|
||||
async def user_callback_inline_x(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS, User: UserModel):
|
||||
await call.answer("Действие выполнено")
|
||||
|
||||
|
||||
# Колбэк с параметром из пользовательской кнопки
|
||||
@router.callback_query(F.data.startswith('user_inline:'))
|
||||
async def user_callback_inline(call: CallbackQuery, bot: Bot, state: FSM, arSession: ARS, User: UserModel):
|
||||
get_data = call.data.split(":")[1]
|
||||
|
||||
await call.answer(f"Выбран раздел: {get_data}", True)
|
||||
|
||||
Reference in New Issue
Block a user