微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用电报添加器脚本将用户添加到 Python 中的电报组时修复 FloodWaitError

如何解决使用电报添加器脚本将用户添加到 Python 中的电报组时修复 FloodWaitError

当我运行脚本时,它以洪水错误请求结束。请帮助我找到修复此代码方法

请是可以帮助自定义波纹管代码的人,以使其能够从特定行到特定行(即:从 CSV 文件的第 13 行到第 32 行)的 CSV 文件添加 Telegram 抓取的用户。我需要它通过在我的频道中添加我的群组用户来避免帐户被电报禁止

SLEEP_TIME_1 = 100
SLEEP_TIME_2 = 100
with client:
    client.loop.run_until_complete(main())
client.connect()
if not client.is_user_authorized():
    client.send_code_request(phone)
    client.sign_in(phone,input('40779'))

users = []
with open(r"members.csv",encoding='UTF-8') as f:  #Enter your file name
    rows = csv.reader(f,delimiter=",",lineterminator="\n")
    next(rows,None)
    for row in rows:
        user = {}
        user['username'] = row[0]
        user['id'] = int(row[1])
        user['access_hash'] = int(row[2])
        user['name'] = row[3]
        users.append(user)

chats = []
last_date = None
chunk_size = 200
groups = []

result = client(GetDialogsRequest(
    offset_date=last_date,offset_id=0,offset_peer=InputPeerEmpty(),limit=chunk_size,hash=0
))
chats.extend(result.chats)

for chat in chats:
    try:
        if chat.megagroup == True:
            groups.append(chat)
    except:
        continue

print('Choose a group to add members: ')
i = 0
for group in groups:
    print(str(i) + '- ' + group.title)
    i += 1

g_index = input("Enter a Number: ")
target_group = groups[int(g_index)]

target_group_entity = InputPeerChannel(target_group.id,target_group.access_hash)


mode = int(input("Enter 1 to add by username or 2 to add by ID: "))

n = 0

for user in users:
    n += 1
    if n % 80 == 0:
        sleep(60)
    try:
        print("Adding {}".format(user['id']))
        if mode == 1:
            if user['username'] == "":
                continue
            user_to_add = client.get_input_entity(user['username'])
            time.sleep(5)
        elif mode == 2:
            user_to_add = InputPeerUser(user['id'],user['access_hash'])
            time.sleep(5)
        else:
            sys.exit("Invalid Mode Selected. Please Try Again.")
        client(InvitetochannelRequest(target_group_entity,[user_to_add]))
        print("Waiting for 60-180 Seconds ...")
        time.sleep(30)
    except PeerFloodError:
        print("Getting Flood Error from telegram. Script is stopping Now. Please try again after some time.")
        print("Waiting {} seconds".format(SLEEP_TIME_2))
        time.sleep(SLEEP_TIME_2)
    except UserPrivacyRestrictedError:
        print("The user's privacy settings do not allow you to do this. Skipping ...")
        print("Waiting for 5 Seconds ...")
        time.sleep(10)
    except:
        traceback.print_exc()
        print("Unexpected Error! ")
        continue

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。