我该如何修复电报?对等频道

问题描述 投票:0回答:1
  • 嗨,我需要有关此代码的帮助。一个月前,我对其进行了修改以适合我。从三天开始,我遇到了一个我无法修复的错误..他曾经工作过,现在没有非常感谢。

  • 这是项目的来源我只是修改了以前的错误我是一个只有一个半月经验的初学者

  • [https://github.com/P-Alban/Telegram-collector

    ] >>
import sys
from getpass import getpass
from time import sleep

from telethon import TelegramClient
from telethon.errors import SessionPasswordNeededError
from telethon.errors import UsernameNotOccupiedError
from telethon.errors import FloodWaitError
from telethon.tl.functions.channels import GetParticipantsRequest
from telethon.tl.functions.contacts import ResolveUsernameRequest
from telethon.tl.types import ChannelParticipantsSearch, InputChannel

# First you need create app on https://my.telegram.org
api_id = api_id
api_hash = 'api_hash'
phone = '+....Phone'
limit = 100


def get_chat_info(username, client):
    try:
        chat = client(ResolveUsernameRequest(username))
    except UsernameNotOccupiedError:
        print('Chat/channel not found!')
        sys.exit()
    result = {
        'chat_id': chat.peer.channel_id,
        'access_hash': chat.chats[0].access_hash
    }
    return result


def dump_users(chat, client):
    counter = 0
    offset = 0
    chat_object = InputChannel(chat['chat_id'], chat['access_hash'])
    all_participants = []
    print('Process...')
    while True:
        participants = client.invoke(GetParticipantsRequest(
                    chat_object, ChannelParticipantsSearch(''), offset, limit
                ))
        if not participants.users:
            break
        all_participants.extend(['{} {}'.format(x.id, x.username)
                           for x in participants.users])
        users_count = len(participants.users)
        offset += users_count
        counter += users_count
        print('{} users collected'.format(counter))
        sleep(2)
    with open('users.txt', 'w') as file:
        file.write('\n'.join(map(str, all_participants)))


def main():
    channel_name = input('Input a channel name, without "@": ')
    client = TelegramClient(phone, api_id, api_hash)

    print('Connecting...')

    client.connect()
    if not client.is_user_authorized():
        try:
            client.send_code_request(phone)
            print('Sending a code...')
            client.sign_in(phone, code=input('Enter code: '))
            print('Successfully!')
        except FloodWaitError as FloodError:
            print('Flood wait: {}.'.format(FloodError))
            sys.exit()
        except SessionPasswordNeededError:
            client.sign_in(password=getpass('Enter password: '))
            print('Successfully!')
    dump_users(get_chat_info(channel_name, client), client)
    print('Done!')

if __name__ == '__main__':
    main()

[嗨,我需要与此代码相关的帮助。一个月前,我对其进行了修改以适合我。三天以来,我遇到了一个我无法修复的错误。.他以前曾经工作过,现在不,非常感谢。这个...

python object attributes telegram telegram-bot
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.