Не все группы видны в Telethon - PullRequest
0 голосов
/ 04 октября 2019

Я использую chat.megagroup==true, он не показывает все каналы (в m==1), и у него также есть проблемы, такие как иногда отображается группа A и группа B, иногда отображается либо A, либо B, иногда группа Cпоказано, не знаю, почему это происходит, даже не меняя ничего в коде.

Сценарий в целом работает нормально, но единственная проблема в том, что у меня иногда нет групп, которые необходимы для использования.

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

chats.extend(result.chats)
dialogs = client.get_dialogs()

m = input("1: For only permitted groups \n2: For all groups\n")
if m=='1':
    for chat in chats:
        try:
            if chat.megagroup == True:
                groups.append(chat)
        except:
            continue
elif m=='2':
    for i in dialogs:
        try:
            i.entity.status
        except:
            groups.append(i)
            continue

В m==2 показаны все группы. Подскажите пожалуйста, что я делаю не так или это что-то еще?

1 Ответ

0 голосов
/ 04 октября 2019

GetDialogsRequest - это необработанный запрос, и Telegram имеет максимальный лимит для него 100. Вы не должны использовать его, и вы всегда должны предпочитать использовать client.get_dialogs(). Вы можете проверить, является ли это группа с dialog.is_group, а канал с dialog.is_channel. Итак, для мегагрупп:

if dialog.is_group and dialog.is_channel:
    # it's a megagroup (= supergroup)

Атрибуты можно найти в документации по адресу https://docs.telethon.dev/en/latest/modules/custom.html#telethon.tl.custom.dialog.Dialog.

...