Reooiq commited on
Commit
fb9121f
·
verified ·
1 Parent(s): def1315

Update bot.py

Browse files
Files changed (1) hide show
  1. bot.py +6 -12
bot.py CHANGED
@@ -25,16 +25,13 @@ API_HASH = os.getenv("API_HASH", "")
25
  SESSION_STRING = os.getenv("SESSION_STRING", "")
26
  SOURCE_CHANNEL = os.getenv("SOURCE_CHANNEL", "")
27
  TARGET_CHANNEL = os.getenv("TARGET_CHANNEL", "")
28
- LIMIT = int(os.getenv("LIMIT", "50")) # يمكنك رفعها الآن لأن البوت سيتخطى المتكررين
29
- BASE_DELAY = int(os.getenv("DELAY_SECONDS", "300")) # 300 ثانية كأمان
30
 
31
  if not API_ID or not API_HASH or not SESSION_STRING:
32
  raise ValueError("❌ تأكد من إضافة API_ID و API_HASH و SESSION_STRING في الـ Secrets")
33
 
34
- # إصلاح البادينغ إن وجد
35
- if SESSION_STRING:
36
- SESSION_STRING += "=" * ((4 - len(SESSION_STRING) % 4) % 4)
37
-
38
  client = TelegramClient(StringSession(SESSION_STRING), API_ID, API_HASH)
39
 
40
  # دالة لقراءة الأشخاص الذين تم سحبهم سابقاً لتجنب التكرار
@@ -73,7 +70,6 @@ async def main():
73
  actual_processed = 0
74
 
75
  for member in members:
76
- # التوقف إذا وصلنا للعدد المطلوب إضافته
77
  if actual_processed >= LIMIT:
78
  break
79
 
@@ -87,18 +83,16 @@ async def main():
87
  if str_id in added_users_memory:
88
  continue
89
 
90
- # 3. فلترة: جلب الأعضاء النشطين فقط (متصل الآن أو آخر ظهور قريب)
91
- # هذا يقلل الحظر بشكل كبيييير جداً
92
  is_active = isinstance(member.status, (UserStatusOnline, UserStatusRecently))
93
  if not is_active:
94
  continue
95
 
96
- # إذا وصل هنا، يعني عضو مناسب جداً للسحب!
97
  actual_processed += 1
98
  name = member.first_name or "مستخدم"
99
  logger.info(f"[{actual_processed}/{LIMIT}] 📩 جاري محاولة إضافة: {name}")
100
 
101
- # حفظه في الذاكرة حتى لو فشلت الإضافة (عشان ما يعلق عليه كل مرة)
102
  save_added_user(str_id)
103
  added_users_memory.add(str_id)
104
 
@@ -109,7 +103,7 @@ async def main():
109
  success += 1
110
  logger.info(f"✅ تمت إضافة {name} بنجاح!")
111
 
112
- # تأخير ذكي (مثلاً إذا كان التأخير 300 ثانية، ينتظر بين 300 إلى 360 ثانية)
113
  smart_delay = BASE_DELAY + random.randint(10, 60)
114
  logger.info(f"⏳ انتظار {smart_delay} ثانية للتمويه...")
115
  await asyncio.sleep(smart_delay)
 
25
  SESSION_STRING = os.getenv("SESSION_STRING", "")
26
  SOURCE_CHANNEL = os.getenv("SOURCE_CHANNEL", "")
27
  TARGET_CHANNEL = os.getenv("TARGET_CHANNEL", "")
28
+ LIMIT = int(os.getenv("LIMIT", "50"))
29
+ BASE_DELAY = int(os.getenv("DELAY_SECONDS", "300"))
30
 
31
  if not API_ID or not API_HASH or not SESSION_STRING:
32
  raise ValueError("❌ تأكد من إضافة API_ID و API_HASH و SESSION_STRING في الـ Secrets")
33
 
34
+ # إنشاء العميل بدون اللعب في الـ SESSION_STRING
 
 
 
35
  client = TelegramClient(StringSession(SESSION_STRING), API_ID, API_HASH)
36
 
37
  # دالة لقراءة الأشخاص الذين تم سحبهم سابقاً لتجنب التكرار
 
70
  actual_processed = 0
71
 
72
  for member in members:
 
73
  if actual_processed >= LIMIT:
74
  break
75
 
 
83
  if str_id in added_users_memory:
84
  continue
85
 
86
+ # 3. فلترة: جلب الأعضاء النشطين فقط
 
87
  is_active = isinstance(member.status, (UserStatusOnline, UserStatusRecently))
88
  if not is_active:
89
  continue
90
 
 
91
  actual_processed += 1
92
  name = member.first_name or "مستخدم"
93
  logger.info(f"[{actual_processed}/{LIMIT}] 📩 جاري محاولة إضافة: {name}")
94
 
95
+ # حفظه في الذاكرة
96
  save_added_user(str_id)
97
  added_users_memory.add(str_id)
98
 
 
103
  success += 1
104
  logger.info(f"✅ تمت إضافة {name} بنجاح!")
105
 
106
+ # تأخير ذكي
107
  smart_delay = BASE_DELAY + random.randint(10, 60)
108
  logger.info(f"⏳ انتظار {smart_delay} ثانية للتمويه...")
109
  await asyncio.sleep(smart_delay)