Как вызвать код python при доставке нового сообщения из API телемарафона - PullRequest
0 голосов
/ 14 июля 2020

Как я могу вызвать код Python, когда новое сообщение доставляется из Telethon API? Мне нужно запускать код весь день, чтобы я мог выполнять обработку из кода Python.

  1. Как это использовать? @client.on(events.NewMessage(chats=channel, incoming=True))
  2. Нужно ли мне запускать планировщик, чтобы проверить это?

Я использую метод history = client(GetHistoryRequest).

1 Ответ

1 голос
/ 14 июля 2020

Первые шаги - обновления в документации приветствует вас следующим кодом:

import logging
logging.basicConfig(format='[%(levelname) 5s/%(asctime)s] %(name)s: %(message)s',
                    level=logging.WARNING)

from telethon import TelegramClient, events

client = TelegramClient('anon', api_id, api_hash)

@client.on(events.NewMessage)
async def my_event_handler(event):
    if 'hello' in event.raw_text:
        await event.reply('hi!')

client.start()
client.run_until_disconnected()

Обратите внимание, что вы можете «вызвать» любой код Python внутри my_event_handler. Он также показывает, как предполагается использовать @client.on(). Обратите внимание, что планировщик не нужен.

Я использую метод history = client (GetHistoryRequest).

В качестве побочного примечания, это необработанный API, который не рекомендуется, если есть дружественная альтернатива, например client.get_messages, существует.

...