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):
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"<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="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)