Обработчик событий Telethon не работает с HypercornPython

Программы на Python
Ответить
Anonymous
 Обработчик событий Telethon не работает с Hypercorn

Сообщение Anonymous »

Я пытаюсь использовать Quart с Hypercorn и Telethon. У меня есть прослушиватель сообщений, но поскольку я интегрировал Quart и Telethon, прослушиватель больше не срабатывает (см. минимальный воспроизводимый пример ниже). Есть ли у кого-нибудь идеи, почему этот код не работает?
Я использовал этот код в качестве шаблона, но это не совсем тот же вариант использования, так как нет прослушивателя обновлений.
Когда я запускаю код с python3 main.py, все работает правильно, но когда я запускаю с python3 -m Hypercorn main:api (Windows 10), прослушиватель не работает.
import os
from dotenv import load_dotenv
from telethon import TelegramClient, events, sync
import hypercorn.asyncio
from quart import Quart, request, json

# Load environment variables
load_dotenv()

# Global variables
allMessages = []

# Enable connection

api_id = os.getenv("API_ID")
api_hash = os.getenv("API_HASH")
phone_number = os.getenv("PHONE_NUMBER")
channel_username=os.getenv("CHANNEL")
client = TelegramClient('abc', api_id, api_hash)
client.start(phone_number)

# Get chat entity
chat = client.get_entity(channel_username)

# Listen for new messages
@client.on(events.NewMessage(incoming=True, chats=chat))
async def handler(event):
message = event.message
allMessages.insert(0, message)
print(message.stringify())

# Web Server
api = Quart(__name__)

@api.route('/messages/json', methods=['GET'])
def route_get_messages_json():
return "test"

async def main():
await hypercorn.asyncio.serve(api, hypercorn.Config())

if __name__ == '__main__':
client.loop.run_until_complete(main())


Более того, я попытался заменить несколько нижних строк вырезанными из этого вопроса, но, к сожалению, это тоже не сработало.
async def main():
await serve(api, hypercorn.config.Config())

if __name__ == '__main__':
loop = client.loop
asyncio.set_event_loop(loop)
client.loop.run_until_complete(main())


Подробнее здесь: https://stackoverflow.com/questions/703 ... -hypercorn
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»