import logging from aiogram.enums import ParseMode from aiogram.types import CallbackQuery, FSInputFile async def log_admin(bot, admin_id: int, text: str, log_bot=None) -> None: try: target = log_bot or bot await target.send_message(admin_id, text, parse_mode=ParseMode.HTML) except Exception as exc: logging.error("log_admin: %s", exc) async def log_admin_document(bot, admin_id: int, path: str, caption: str | None = None, log_bot=None) -> None: try: target = log_bot or bot await target.send_document( admin_id, document=FSInputFile(path), caption=caption, parse_mode=ParseMode.HTML, ) except Exception as exc: logging.error("log_admin_document: %s", exc) async def safe_edit( cb: CallbackQuery, text: str, reply_markup=None, parse_mode=ParseMode.HTML, disable_web_page_preview: bool = False, ) -> None: try: await cb.message.edit_text( text, reply_markup=reply_markup, parse_mode=parse_mode, disable_web_page_preview=disable_web_page_preview, ) except Exception: try: await cb.message.answer( text, reply_markup=reply_markup, parse_mode=parse_mode, disable_web_page_preview=disable_web_page_preview, ) except Exception as exc: logging.error("safe_edit fail: %s", exc)