AI Update: بله

This commit is contained in:
Antigravity Bot
2026-08-30 18:05:27 +03:30
parent 6db319b4de
commit d896f08429
+21 -11
View File
@@ -135,9 +135,11 @@ class AdminBotService:
async def on_website_error_alert(self, alert_text: str, site_id: int): async def on_website_error_alert(self, alert_text: str, site_id: int):
buttons = [[Button.inline("🤖 تحلیل مجدد هوشمند وبسایت", data=f"web_reanalyze:{site_id}")]] 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: 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: except Exception as e:
logger.error(f"Failed to send website alert to review channel: {e}") logger.error(f"Failed to send website alert to review channel: {e}")
for admin_id in self.admin_user_ids: 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): async def notify_admins(self, text: str, include_review_channel: bool = True):
"""Broadcast Persian message to admin DMs, and optionally review channel.""" """Broadcast Persian message to admin DMs, and optionally review channel."""
if include_review_channel and self.review_channel_id: if include_review_channel:
try: def_adm = await self.repo.get_default_admin_channel()
await self.client.send_message(self.review_channel_id, text, parse_mode="html") target_ch = def_adm.channel_id if def_adm else self.review_channel_id
except Exception as e: if target_ch:
logger.error(f"Failed to notify review channel: {e}") 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() menu = await self.get_menu()
for admin_id in self.admin_user_ids: for admin_id in self.admin_user_ids:
@@ -1306,7 +1311,7 @@ class AdminBotService:
is_def = (source.admin_channel_id is None) is_def = (source.admin_channel_id is None)
def_mark = "" if is_def else "" def_mark = "" if is_def else ""
def_adm = await self.repo.get_default_admin_channel() 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(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_add_adm:{source.id}")])
buttons.append([Button.inline("🔙 بازگشت به تنظیمات کانال مبدا", data=f"src_view:{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) is_def = (site.admin_channel_id is None)
def_mark = "" if is_def else "" def_mark = "" if is_def else ""
def_adm = await self.repo.get_default_admin_channel() 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(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_add_adm:{site.id}")])
buttons.append([Button.inline("🔙 بازگشت به تنظیمات وبسایت", data=f"web_view:{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}"), Button.inline(f"📋 {ch.title or ch.channel_id}{def_star}", data=f"adm_view:{ch.id}"),
]) ])
else: else:
lines.append(f"<i>تنها کانال پیش‌فرض محیطی فعال است: <code>{self.review_channel_id}</code></i>") if self.review_channel_id:
lines.append(f"<i>تنها کانال پیش‌فرض محیطی فعال است: <code>{self.review_channel_id}</code></i>")
else:
lines.append("<i>هیچ کانال نظارتی تعریف نشده است. لطفاً از طریق دکمه زیر کانال نظارت جدید اضافه کنید.</i>")
buttons.append([Button.inline("➕ افزودن کانال ادمین جدید", data="add_adm_ch")]) buttons.append([Button.inline("➕ افزودن کانال ادمین جدید", data="add_adm_ch")])
buttons.append([Button.inline("🔙 بازگشت به منوی ربات‌ها", data="hub_bots")]) buttons.append([Button.inline("🔙 بازگشت به منوی ربات‌ها", data="hub_bots")])
@@ -1426,13 +1434,15 @@ class AdminBotService:
posts = await self.repo.clear_all_review_messages() posts = await self.repo.clear_all_review_messages()
cleared_db_count = len(posts) cleared_db_count = len(posts)
by_channel: Dict[int, List[int]] = {} 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: for p in posts:
if p.media_path and os.path.exists(p.media_path): if p.media_path and os.path.exists(p.media_path):
try: try:
os.remove(p.media_path) os.remove(p.media_path)
except Exception: except Exception:
pass 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: if ch_id and p.review_message_id:
by_channel.setdefault(ch_id, []).append(p.review_message_id) by_channel.setdefault(ch_id, []).append(p.review_message_id)