اذهب إلى المحتوى

السؤال

نشر (معدل)

لدي مشكلة في هذا الكود وهو عبارة عن ارسال رسائل تلغرام للمستخدمين ولكن عند عدم وجود اسم المستخدم في تلغرام يتوقف عمل البرنامج مع اني قمت بوضع حلقة تكرارية للمرور على جميع اسماء المستخدمين وضعت ايضا خاصية try و ecsbet  في حال لم يجد اسم المستخدم يتابع العمل ويتخطا اسم المستخد الغير موجود ولكن مع ذلك الكود يتوقف عن العمل عند عدم وجود اسم المستخدم في تلغرام

from telethon.errors.rpcerrorlist import PeerFloodError, UserPrivacyRestrictedError, UsernameInvalidError
from telethon.sync import TelegramClient
from telethon.tl.types import InputPeerUser
import time
import random

api_id = "28764832"
api_hash = "ed4a3f2d048dbae4d5ebca24c000b179"
client = TelegramClient("session_name", api_id, api_hash)

client.start()

users = ['Ahmedmriy' , 'Waleedalomer', 'wsleedalomer' , 'Zeinahseidnawy']  # أسماء المستخدمين الذين سيتم إرسال الرسالة إليهم

for username in users:
    try:
        user_entity = client.get_entity(username)
    except UsernameInvalidError:
        print(f"Could not find username {username}")
        continue
    receiver = InputPeerUser(user_entity.id, user_entity.access_hash)
    message = "massge"{random.randint(1, 1000)}
    client.send_message(receiver, message, parse_mode='html')
    print(f"Message sent to {username}")
    time.sleep(30)

client.disconnect()

 

تم التعديل في بواسطة Mustafa Suleiman
تعديل عنوان السؤال

Recommended Posts

  • 0
نشر

حاول تجربة حل المشكلة باستخدام كلمة المرور continue داخل الاستثناء (except) الذي يتم إثارته في حالة عدم وجود اسم المستخدم في تليجرام، بحيث يقوم الكود بتجاهل هذا الاسم والمتابعة في الكشف عن الأسماء الأخرى الموجودة في القائمة.

عليك بتحديث الكود كما يلي:

for username in users:
    try:
        user_entity = client.get_entity(username)
    except UsernameInvalidError:
        print(f"Could not find username {username}")
        continue # تجاهل هذا الاسم والمتابعة في الكشف عن الأسماء الأخرى
    receiver = InputPeerUser(user_entity.id, user_entity.access_hash)
    message = f"massge{random.randint(1, 1000)}"
    client.send_message(receiver, message, parse_mode='html')
    print(f"Message sent to {username}")
    time.sleep(30)

حيث تم إضافة كلمة المرور continue داخل الاستثناء (except)، والتي تحول دون تنفيذ باقي التعليمات في اللفة الحالية لحلقة الـ for، وتنتقل مباشرةً إلى التعليمات الخاصة بالحلقة التالية.

  • 0
نشر
بتاريخ 2 ساعة قال Mustafa Suleiman:

حاول تجربة حل المشكلة باستخدام كلمة المرور continue داخل الاستثناء (except) الذي يتم إثارته في حالة عدم وجود اسم المستخدم في تليجرام، بحيث يقوم الكود بتجاهل هذا الاسم والمتابعة في الكشف عن الأسماء الأخرى الموجودة في القائمة.

عليك بتحديث الكود كما يلي:

for username in users:
    try:
        user_entity = client.get_entity(username)
    except UsernameInvalidError:
        print(f"Could not find username {username}")
        continue # تجاهل هذا الاسم والمتابعة في الكشف عن الأسماء الأخرى
    receiver = InputPeerUser(user_entity.id, user_entity.access_hash)
    message = f"massge{random.randint(1, 1000)}"
    client.send_message(receiver, message, parse_mode='html')
    print(f"Message sent to {username}")
    time.sleep(30)

حيث تم إضافة كلمة المرور continue داخل الاستثناء (except)، والتي تحول دون تنفيذ باقي التعليمات في اللفة الحالية لحلقة الـ for، وتنتقل مباشرةً إلى التعليمات الخاصة بالحلقة التالية.

شكرا صديقي 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...