Почему Telethon выдает Traceback ValueError: too many values to unpack (expected 4)?

Всем привет !
Пытаюсь переделать чужой не рабочий код и адаптировать под себя ,
Вот код

from telethon.sync import TelegramClient
from telethon.tl.functions.messages import GetDialogsRequest
from telethon.tl.types import InputPeerEmpty
import os, sys
import configparser
import csv
import time

re="\033[1;31m"
gr="\033[1;32m"
cy="\033[1;36m"

def banner():
    print(f""" -----------------""")

cpass = configparser.RawConfigParser()
cpass.read('config.data')

try:
    api_id = cpass['cred']['id']
    api_hash = cpass['cred']['hash']
    phone = cpass['cred']['phone']
    client = TelegramClient(phone, api_id, api_hash)
except KeyError:
    os.system('clear')
    banner()
    print(re+"[!] run python3 setup.py first !!\n")
    sys.exit(1)

client.connect()
if not client.is_user_authorized():
    client.send_code_request(phone)
    os.system('clear')
    banner()
    client.sign_in(phone, input(gr+'[+] Enter the code: '+re))
 
os.system('clear')
banner()
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(gr+'[+] Choose a group to scrape members :'+re)
i=0
for g in groups:
    print(gr+'['+cy+str(i)+gr+']'+cy+' - '+ g.title)
    i+=1
 
print('')
g_index = input(gr+"[+] Enter a Number : "+re)
target_group=groups[int(g_index)]
 
print(gr+'[+] Fetching Members...')
time.sleep(1)
all_participants = []
all_participants = client.get_participants(target_group)
 
print(gr+'[+] Saving In file...')
time.sleep(1)
with open("members.csv","w",encoding='UTF-8') as f:
    writer = csv.writer(f,delimiter=",",lineterminator="\n")
    writer.writerow(['username','user id', 'access hash','name','group', 'group id'])
    for user in all_participants:
        if user.username:
            username= user.username
        else:
            username= ""
        if user.first_name:
            first_name= user.first_name
        else:
            first_name= ""
        if user.last_name:
            last_name= user.last_name
        else:
            last_name= ""
        name= (first_name + ' ' + last_name).strip()
        writer.writerow([username,user.id,user.access_hash,name,target_group.title, target_group.id])      
print(gr+'[+] Members scraped successfully.')


Пишет ошибку :
Traceback (most recent call last):
  File "C:\Users\adaml\Desktop\Боты\TGPars-main\smsbotmine.py", line 13, in <module>
    client = TelegramClient(phone, api_id, api_hash)
  File "C:\Users\adaml\AppData\Local\Programs\Python\Python39\lib\site-packages\telethon\telegram_client.py", line 185, in __init__
    super().__init__(
  File "C:\Users\adaml\AppData\Local\Programs\Python\Python39\lib\site-packages\telethon\telegram_bare_client.py", line 93, in __init__
    session = SQLiteSession(session)
  File "C:\Users\adaml\AppData\Local\Programs\Python\Python39\lib\site-packages\telethon\sessions\sqlite.py", line 71, in __init__
    self._dc_id, self._server_address, self._port, key, = tuple_
ValueError: too many values to unpack (expected 4)
  • Вопрос задан
  • 240 просмотров
Пригласить эксперта
Ответы на вопрос 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Точно сказать не могу, но подозреваю, что при создании экземпляра client класса TelegramClient вы передаёте в качестве параметров не то, что ожидает класс. Возможно, слишком много параметров передаётся - класс не может их все развернуть куда следует.
Подробно надо смотреть сам класс, что и как он принимает; и, конечно, смотреть, что вы в него передаёте из своего конфига.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы