from aiogram.types import InlineKeyboardMarkup from aiogram.utils.keyboard import InlineKeyboardBuilder def help_home_keyboard(is_admin: bool) -> InlineKeyboardMarkup: builder = InlineKeyboardBuilder() builder.button(text="Обзор и метрики", callback_data="help:menu:monitoring") builder.button(text="Релизы и версии", callback_data="help:menu:releases") builder.button(text="Подписки", callback_data="help:menu:subscriptions") builder.button(text="Статус синхронизации", callback_data="help:sync_status") if is_admin: builder.button(text="Админ-панель", callback_data="admin:open") builder.adjust(2, 2, 1) return builder.as_markup() def help_monitoring_keyboard(is_admin: bool) -> InlineKeyboardMarkup: builder = InlineKeyboardBuilder() builder.button(text="Сводка за неделю", callback_data="help:week") builder.button(text="Сегодня", callback_data="help:today") builder.button(text="Топ issues", callback_data="help:top") builder.button(text="Старые issues", callback_data="help:stale") builder.button(text="Назад", callback_data="help:open") if is_admin: builder.button(text="Админ-панель", callback_data="admin:open") builder.adjust(2, 2, 1, 1) return builder.as_markup() def help_releases_keyboard(is_admin: bool) -> InlineKeyboardMarkup: builder = InlineKeyboardBuilder() builder.button(text="Список релизов", callback_data="help:releases") builder.button(text="Как открыть релиз", callback_data="help:release_guide") builder.button(text="Назад", callback_data="help:open") if is_admin: builder.button(text="Админ-панель", callback_data="admin:open") builder.adjust(2, 1, 1) return builder.as_markup() def help_subscriptions_keyboard(is_admin: bool) -> InlineKeyboardMarkup: builder = InlineKeyboardBuilder() builder.button(text="Подписаться на backend", callback_data="help:sub:backend") builder.button(text="Подписаться на frontend", callback_data="help:sub:frontend") builder.button(text="Отписаться от backend", callback_data="help:unsub:backend") builder.button(text="Отписаться от frontend", callback_data="help:unsub:frontend") builder.button(text="Назад", callback_data="help:open") if is_admin: builder.button(text="Админ-панель", callback_data="admin:open") builder.adjust(2, 2, 1, 1) return builder.as_markup() def help_result_keyboard(back_callback: str, is_admin: bool) -> InlineKeyboardMarkup: builder = InlineKeyboardBuilder() builder.button(text="Назад", callback_data=back_callback) builder.button(text="Главное меню", callback_data="help:open") if is_admin: builder.button(text="Админ-панель", callback_data="admin:open") builder.adjust(2, 1) else: builder.adjust(2) return builder.as_markup() def admin_home_keyboard() -> InlineKeyboardMarkup: builder = InlineKeyboardBuilder() builder.button(text="Центр синхронизации", callback_data="admin:menu:sync") builder.button(text="Сводки и мониторинг", callback_data="admin:menu:overview") builder.button(text="Ownership и topics", callback_data="admin:ownership") builder.button(text="Mute rules", callback_data="admin:mute_list") builder.button(text="Инструкция", callback_data="admin:guide") builder.button(text="Пользовательское меню", callback_data="help:open") builder.adjust(2, 2, 1, 1) return builder.as_markup() def admin_sync_keyboard() -> InlineKeyboardMarkup: builder = InlineKeyboardBuilder() builder.button(text="Запустить sync", callback_data="admin:sync") builder.button(text="Статус sync", callback_data="admin:sync_status") builder.button(text="Назад", callback_data="admin:open") builder.button(text="Пользовательское меню", callback_data="help:open") builder.adjust(2, 2) return builder.as_markup() def admin_overview_keyboard() -> InlineKeyboardMarkup: builder = InlineKeyboardBuilder() builder.button(text="Сводка за неделю", callback_data="admin:week") builder.button(text="Сегодня", callback_data="admin:today") builder.button(text="Топ issues", callback_data="admin:top") builder.button(text="Старые issues", callback_data="admin:stale") builder.button(text="Релизы", callback_data="admin:releases") builder.button(text="Назад", callback_data="admin:open") builder.adjust(2, 2, 1, 1) return builder.as_markup() def admin_result_keyboard(back_callback: str) -> InlineKeyboardMarkup: builder = InlineKeyboardBuilder() builder.button(text="Назад", callback_data=back_callback) builder.button(text="Админ-панель", callback_data="admin:open") builder.button(text="Пользовательское меню", callback_data="help:open") builder.adjust(2, 1) return builder.as_markup()