From d896f0842901f585bc4f3681190bf7099d9f6377 Mon Sep 17 00:00:00 2001 From: Antigravity Bot Date: Sun, 30 Aug 2026 18:05:27 +0330 Subject: [PATCH] =?UTF-8?q?AI=20Update:=20=D8=A8=D9=84=D9=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/admin_bot.py | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/services/admin_bot.py b/services/admin_bot.py index b13cd1c..575db13 100644 --- a/services/admin_bot.py +++ b/services/admin_bot.py @@ -135,9 +135,11 @@ class AdminBotService: async def on_website_error_alert(self, alert_text: str, site_id: int): buttons = [[Button.inline("🤖 تحلیل مجدد هوشمند وبسایت", data=f"web_reanalyze:{site_id}")]] - if self.review_channel_id: + def_adm = await self.repo.get_default_admin_channel() + target_ch = def_adm.channel_id if def_adm else self.review_channel_id + if target_ch: try: - await self.client.send_message(self.review_channel_id, alert_text, parse_mode="html", buttons=buttons) + await self.client.send_message(target_ch, alert_text, parse_mode="html", buttons=buttons) except Exception as e: logger.error(f"Failed to send website alert to review channel: {e}") for admin_id in self.admin_user_ids: @@ -178,11 +180,14 @@ class AdminBotService: async def notify_admins(self, text: str, include_review_channel: bool = True): """Broadcast Persian message to admin DMs, and optionally review channel.""" - if include_review_channel and self.review_channel_id: - try: - await self.client.send_message(self.review_channel_id, text, parse_mode="html") - except Exception as e: - logger.error(f"Failed to notify review channel: {e}") + if include_review_channel: + def_adm = await self.repo.get_default_admin_channel() + target_ch = def_adm.channel_id if def_adm else self.review_channel_id + if target_ch: + try: + await self.client.send_message(target_ch, text, parse_mode="html") + except Exception as e: + logger.error(f"Failed to notify review channel: {e}") menu = await self.get_menu() for admin_id in self.admin_user_ids: @@ -1306,7 +1311,7 @@ class AdminBotService: is_def = (source.admin_channel_id is None) def_mark = "✅ " if is_def else "" def_adm = await self.repo.get_default_admin_channel() - def_name = f" ({def_adm.title})" if (def_adm and def_adm.title) else (f" ({self.review_channel_id})" if self.review_channel_id else "") + def_name = f" ({def_adm.title})" if (def_adm and def_adm.title) else (f" ({def_adm.channel_id})" if def_adm else (f" ({self.review_channel_id})" if self.review_channel_id else " (تعریف‌نشده)")) buttons.append([Button.inline(f"{def_mark}⚙️ پیش‌فرض سیستم{def_name}", data=f"src_set_adm:{source.id}:none")]) buttons.append([Button.inline("➕ افزودن کانال ادمین جدید", data=f"src_add_adm:{source.id}")]) buttons.append([Button.inline("🔙 بازگشت به تنظیمات کانال مبدا", data=f"src_view:{source.id}")]) @@ -1333,7 +1338,7 @@ class AdminBotService: is_def = (site.admin_channel_id is None) def_mark = "✅ " if is_def else "" def_adm = await self.repo.get_default_admin_channel() - def_name = f" ({def_adm.title})" if (def_adm and def_adm.title) else (f" ({self.review_channel_id})" if self.review_channel_id else "") + def_name = f" ({def_adm.title})" if (def_adm and def_adm.title) else (f" ({def_adm.channel_id})" if def_adm else (f" ({self.review_channel_id})" if self.review_channel_id else " (تعریف‌نشده)")) buttons.append([Button.inline(f"{def_mark}⚙️ پیش‌فرض سیستم{def_name}", data=f"web_set_adm:{site.id}:none")]) buttons.append([Button.inline("➕ افزودن کانال ادمین جدید", data=f"web_add_adm:{site.id}")]) buttons.append([Button.inline("🔙 بازگشت به تنظیمات وبسایت", data=f"web_view:{site.id}")]) @@ -1354,7 +1359,10 @@ class AdminBotService: Button.inline(f"📋 {ch.title or ch.channel_id}{def_star}", data=f"adm_view:{ch.id}"), ]) else: - lines.append(f"تنها کانال پیش‌فرض محیطی فعال است: {self.review_channel_id}") + if self.review_channel_id: + lines.append(f"تنها کانال پیش‌فرض محیطی فعال است: {self.review_channel_id}") + else: + lines.append("هیچ کانال نظارتی تعریف نشده است. لطفاً از طریق دکمه زیر کانال نظارت جدید اضافه کنید.") buttons.append([Button.inline("➕ افزودن کانال ادمین جدید", data="add_adm_ch")]) buttons.append([Button.inline("🔙 بازگشت به منوی ربات‌ها", data="hub_bots")]) @@ -1426,13 +1434,15 @@ class AdminBotService: posts = await self.repo.clear_all_review_messages() cleared_db_count = len(posts) by_channel: Dict[int, List[int]] = {} + def_adm = await self.repo.get_default_admin_channel() + default_ch = def_adm.channel_id if def_adm else self.review_channel_id for p in posts: if p.media_path and os.path.exists(p.media_path): try: os.remove(p.media_path) except Exception: pass - ch_id = p.review_channel_id or self.review_channel_id + ch_id = p.review_channel_id or default_ch if ch_id and p.review_message_id: by_channel.setdefault(ch_id, []).append(p.review_message_id)