from aiogram import F, Router
from aiogram.types import CallbackQuery
from filters.admin import IsAdminFilter
from utils.backup import backup_database
from ..panel.keyboard import AdminPanelCallback, build_admin_back_kb
router = Router()
@router.callback_query(
AdminPanelCallback.filter(F.action == "backups"),
IsAdminFilter(),
)
async def handle_backups(callback_query: CallbackQuery):
kb = build_admin_back_kb("management")
await callback_query.message.edit_text(
text="πΎ ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
...",
reply_markup=kb,
)
try:
exception = await backup_database()
if exception:
text = f"β ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ:\n{exception}"
else:
text = "β
Π Π΅Π·Π΅ΡΠ²Π½Π°Ρ ΠΊΠΎΠΏΠΈΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½Π° ΠΈ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠ°ΠΌ."
except Exception as e:
text = f"β ΠΠ΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°: {e}"
await callback_query.message.edit_text(text=text, reply_markup=kb)