Opera8 commited on
Commit
78640a0
·
verified ·
1 Parent(s): 822fc31

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +5 -56
main.py CHANGED
@@ -24,16 +24,9 @@ from pydub import AudioSegment
24
  # --- کد مدیریت برای ارتقای کاربران بدون نیاز به لاگین ---
25
  ADMIN_CODE = "3011"
26
 
27
- # متغیر سراسری برای ذخیره آیدی خود ربات
28
  BOT_GUID = None
29
 
30
- # =======================================================
31
- # 🔥 متغیرهای سیستم جاروبرقی و ضد رگبار استارت‌آپ 🔥
32
- # =======================================================
33
- BOT_START_TIME = time.time()
34
- STARTUP_PHASE = True
35
- LAST_UPDATE_TIME = time.time()
36
-
37
  # =======================================================
38
  # 🔥 سیستم کنترل سرعت و ضد رگبار (Burst Controller) 🔥
39
  # =======================================================
@@ -51,7 +44,7 @@ def is_backlog_burst():
51
  return False
52
  else:
53
  global_burst_count += 1
54
- if global_burst_count > 60:
55
  return True
56
  return False
57
 
@@ -1025,7 +1018,7 @@ async def process_image_edit(client, chat_id, image_bytes, prompt):
1025
  if proc_msg:
1026
  msg_id = getattr(proc_msg, 'message_id', None)
1027
  if isinstance(proc_msg, dict): msg_id = proc_msg.get('message_update', {}).get('message_id') or proc_msg.get('message_id')
1028
- if msg_id: await client.delete_messages(chat_id,[msg_id])
1029
  except Exception: pass
1030
 
1031
  if not generated_image:
@@ -1577,22 +1570,7 @@ else:
1577
 
1578
  @bot.on_update(filters.private)
1579
  async def main_handler(client, update):
1580
- # =============================================================
1581
- # 🔥 لایه دفاعی جاروبرقی استارت‌آپ (نابودی رگبار قدیمی) 🔥
1582
- # =============================================================
1583
- global BOT_GUID, STARTUP_PHASE, LAST_UPDATE_TIME
1584
-
1585
- now = time.time()
1586
- time_since_last = now - LAST_UPDATE_TIME
1587
- LAST_UPDATE_TIME = now
1588
-
1589
- if STARTUP_PHASE:
1590
- # خروج از فاز استارت‌آپ اگر 20 ثانیه گذشته باشه یا اینکه 2 ثانیه هیچ پیامی نیومده باشه
1591
- if (now - BOT_START_TIME) > 20.0 or (time_since_last > 2.0 and (now - BOT_START_TIME) > 5.0):
1592
- STARTUP_PHASE = False
1593
- else:
1594
- return # دراپ کردن سریع پیام‌های رگباری قدیمی در همون صدم ثانیه اول
1595
- # =============================================================
1596
 
1597
  if is_backlog_burst():
1598
  return
@@ -1607,35 +1585,6 @@ else:
1607
  pass
1608
 
1609
  msg_obj = getattr(update, "message", None) or getattr(update, "new_message", None)
1610
-
1611
- # =============================================================
1612
- # 🔥 لایه دفاعی دوم: بررسی بی‌رحمانه زمان پیام (تایم‌استمپ) 🔥
1613
- # =============================================================
1614
- try:
1615
- msg_ts = None
1616
- if hasattr(msg_obj, "to_dict"):
1617
- d = msg_obj.to_dict()
1618
- msg_ts = d.get("timestamp") or d.get("time") or d.get("date")
1619
- if not msg_ts and hasattr(update, "to_dict"):
1620
- d = update.to_dict()
1621
- msg_ts = d.get("timestamp") or d.get("time") or d.get("date")
1622
- if not msg_ts and "message" in d:
1623
- msg_ts = d["message"].get("timestamp") or d["message"].get("time") or d["message"].get("date")
1624
- if not msg_ts:
1625
- msg_ts = getattr(msg_obj, "timestamp", None) or getattr(msg_obj, "time", None)
1626
- if not msg_ts:
1627
- msg_ts = getattr(update, "timestamp", None) or getattr(update, "time", None)
1628
-
1629
- if msg_ts:
1630
- ts_val = int(msg_ts)
1631
- if ts_val > 9999999999: # تبدیل میلی‌ثانیه به ثانیه در صورت نیاز
1632
- ts_val = ts_val // 1000
1633
- # اگر پیام برای بیش از 10 ثانیه قبل از روشن شدن ربات است، نادیده بگیر
1634
- if ts_val < BOT_START_TIME - 10:
1635
- return
1636
- except Exception:
1637
- pass
1638
- # =============================================================
1639
 
1640
  author_id = getattr(update, 'author_guid', None)
1641
  if not author_id and msg_obj:
@@ -1937,7 +1886,7 @@ else:
1937
 
1938
  if user_text_str in["/referral", "ثبت کد هدیه 🎫"]:
1939
  if creds.get("used_referral", False):
1940
- await send_with_keyboard(client, chat_id, "❌ شما قبلاً کد هدیه یک نفر را ثبت کرده‌اید و فقط یک‌بار مجاز به استفاده از این امکان بدی.", True)
1941
  return
1942
  user_states[str_chat_id]["mode"] = "waiting_for_referral_code"
1943
  msg = "🎫 **ثبت کد هدیه**\n\nکد هدیه 8 رقمی (اعداد) که از دوست خود دریافت کرده‌اید را اینجا وارد کنید تا در همان لحظه **10 سهمیه تبدیل رایگان متن به صدا** هدیه بگیرید!\n\n(برای انصراف دکمه «برگشت♻️» را بزنید)"
 
24
  # --- کد مدیریت برای ارتقای کاربران بدون نیاز به لاگین ---
25
  ADMIN_CODE = "3011"
26
 
27
+ # متغیر سراسری برای ذخیره آیدی خود ربات (جلوگیری از جواب دادن ربات به خودش)
28
  BOT_GUID = None
29
 
 
 
 
 
 
 
 
30
  # =======================================================
31
  # 🔥 سیستم کنترل سرعت و ضد رگبار (Burst Controller) 🔥
32
  # =======================================================
 
44
  return False
45
  else:
46
  global_burst_count += 1
47
+ if global_burst_count > 6000:
48
  return True
49
  return False
50
 
 
1018
  if proc_msg:
1019
  msg_id = getattr(proc_msg, 'message_id', None)
1020
  if isinstance(proc_msg, dict): msg_id = proc_msg.get('message_update', {}).get('message_id') or proc_msg.get('message_id')
1021
+ if msg_id: await client.delete_messages(chat_id, [msg_id])
1022
  except Exception: pass
1023
 
1024
  if not generated_image:
 
1570
 
1571
  @bot.on_update(filters.private)
1572
  async def main_handler(client, update):
1573
+ global BOT_GUID
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1574
 
1575
  if is_backlog_burst():
1576
  return
 
1585
  pass
1586
 
1587
  msg_obj = getattr(update, "message", None) or getattr(update, "new_message", None)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1588
 
1589
  author_id = getattr(update, 'author_guid', None)
1590
  if not author_id and msg_obj:
 
1886
 
1887
  if user_text_str in["/referral", "ثبت کد هدیه 🎫"]:
1888
  if creds.get("used_referral", False):
1889
+ await send_with_keyboard(client, chat_id, "❌ شما قبلاً کد هدیه یک نفر را ثبت کرده‌اید و فقط یک‌بار مجاز به استفاده از این امکان هستید.", True)
1890
  return
1891
  user_states[str_chat_id]["mode"] = "waiting_for_referral_code"
1892
  msg = "🎫 **ثبت کد هدیه**\n\nکد هدیه 8 رقمی (اعداد) که از دوست خود دریافت کرده‌اید را اینجا وارد کنید تا در همان لحظه **10 سهمیه تبدیل رایگان متن به صدا** هدیه بگیرید!\n\n(برای انصراف دکمه «برگشت♻️» را بزنید)"