раздел 03

Базовые операции

Когда сессия создана, дальше всё крутится вокруг объекта client. Все примеры асинхронные: вызовы идут через await, а сам код запускается внутри client.

Подключиться

from telethon import TelegramClient

client = TelegramClient("my_session", api_id, api_hash)

async def main():
    # ... тут наши операции
    pass

with client:
    client.loop.run_until_complete(main())

Прочитать сообщения из чата или канала

Берём последние сообщения. Адресат - username, ссылка или id чата.

async def read_chat():
    async for message in client.iter_messages("@some_channel", limit=20):
        print(message.date, message.text)

Отправить сообщение

async def send():
    await client.send_message("@username", "Привет из Telethon")

Скачать медиа

async def download_media():
    async for message in client.iter_messages("@some_channel", limit=50):
        if message.media:
            path = await message.download_media("downloads/")
            print("Сохранено:", path)

Слушать новые сообщения

Обработчик событий реагирует на каждое новое сообщение в реальном времени.

from telethon import events

@client.on(events.NewMessage(chats="@some_channel"))
async def handler(event):
    print("Новое:", event.message.text)

with client:
    client.run_until_disconnected()