Получить ботом общее число сообщений в телеграм канале telethon

Используя библиотеку telethon не могу найти способ получить общее количество сообщений в тг канале. Использую последнюю версию. Перерыл документацию, но так и не нашел решения, возможно что то упустил.

Через токен бота удалось получить данные конкретного сообщения в ТГ канале по id через GetMessagesRequest. Но не нашел метода для получения общего числа сообщений в канале именно ботом, не авторизируясь по номеру телефона в telethon.

Есть ли возможность получить число сообщений через telethon? Или возможно в других библиотеках есть какие то способы получения общего числа сообщений в тг канале используя токен бота?


Ответы (1 шт):

Автор решения: kurakinvit

Можно использовать Telegram Bot API

import requests

def get_channel_messages_count(channel_username, bot_token):
    url = f"https://api.telegram.org/bot{bot_token}/getChat?chat_id=@{channel_username}"
    response = requests.get(url)
    data = response.json()
    if response.status_code == 200 and data["ok"]:
        return data["result"]["message_count"]
    else:
        return None

Заюзать как-то так:

messages_count = get_channel_messages_count(channel_username, bot_token)
if messages_count is not None:
    print(f"Общее количество сообщений {channel_username}: {messages_count}")
else:
    print("Не удалось получить количество сообщений")

UPDATE: Вы правы. Значит попробуйте Telethon:

with TelegramClient('session_name', api_id, api_hash) as client:
    client.start(bot_token=bot_token)
    channel_entity = client.get_entity(channel_username)
    messages_count = client.get_messages(channel_entity, limit=0).total
    print(f"Общее количество сообщений в канале {channel_username}: {messages_count}")```
→ Ссылка