Задать вопрос
MicroProger
@MicroProger
Работает - не трогай

Как в telethon узнать привязанный канал пользователя?

def get_linked_channel(client, username):
    try:
        user = client.get_entity(username) # Получаем объект User по имени пользователя
        print(user)
        if hasattr(user, 'linked_chat_id') and user.linked_chat_id:
            linked_channel_id = user.linked_chat_id
            try:
                linked_channel = client.get_entity(linked_channel_id)
                print(f"Ссылка на привязанный канал пользователя {username}: {linked_channel.username}")
                # или
                print(f"ID привязанного канала пользователя {username}: {linked_channel_id}")
                invite_link = client(ExportChatInviteRequest(linked_channel))
                print(f"Invite link: {invite_link.link}")
                return invite_link.link # Возвращаем invite link
            except ValueError:
                print(f"Не удалось получить информацию о привязанном канале (возможно, он приватный). ID: {linked_channel_id}")

                try: # пробуем получить link через entity
                  link = client.get_entity(PeerChannel(linked_channel_id))
                  return f"t.me/{link.username}" if link.username is not None else None

                except Exception as e:
                    print(f"Ошибка: {e}")
                    return None
        else:
            print(f"У пользователя {username} нет привязанного канала.")
            return None

    except ValueError:
        print(f"Пользователь {username} не найден.")
        return None
    except Exception as e:
        print(f"Произошла ошибка: {e}")
        return None


chat gpt выдал такую вот функцию. Я так понимаю, у user в принципе нет атрибута linked_chat_id
  • Вопрос задан
  • 33 просмотра
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы