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

عدم استمرار عمل البرنامج في حال عدم وجود اسم مستخدم تلغرام في الكود الخاص بإرسال الرسائل. (بايثون)

Waleed Alomar

السؤال

لدي مشكلة في هذا الكود وهو عبارة عن ارسال رسائل تلغرام للمستخدمين ولكن عند عدم وجود اسم المستخدم في تلغرام يتوقف عمل البرنامج مع اني قمت بوضع حلقة تكرارية للمرور على جميع اسماء المستخدمين وضعت ايضا خاصية 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...