Обработчик пирограммы не работает при попытке вызвать функцию

      filter_  = (filters.me & ~filters.forwarded & ~filters.incoming & filters.via_bot & filters.command(".", ["ascii"]))

async def hello(client, message):
     await message.reply("HELLLO WORLD")

app.add_handler(hello, filter_  )
app.start()

idle()
app.stop()

Просто всегда зацикливается, не более того. Не работает, нет ответа от клиента. Что в этом плохого? Или я что-то не так делаю?

2 ответа

Вам нужно добавить MessageHandler().

      from pyrogram.handlers import MessageHandler

...

app.add_handler(MessageHandler(hello, filter_))

См. Справочную информацию в разделе « Обработчик обновлений» в документации.


Хотя это не связано с вашим исходным вопросом, я считаю, что декораторы - лучшая альтернатива, поскольку они не требуют дополнительного импорта или создания экземпляра:

      from pyrogram import Client
app = Client()

@app.on_message(filter_)
def hello(client, message):
    await message.reply("hello")

app.run()  # This app.run() call also skips app.start(), idle() and app.stop()

@ColinShark, вот код не работает.

      
filter_= filters.me    & ~filters.forwarded & filters.incoming & ~filters.via_bot & filters.command(".", ["dict", "define", "meaning"])

@app.on_message(filter_)
async def dc(client, message):
    if  not message.text:
        await message.edit_message_text("**How could i define nothing?**")
        return
    txt = message.text.split()[1]
    meana = PyDictionary()
    meaning = meana.meaning(txt)
    for i in meaning:
        mean += "\n" + i
    await app.send_message(message.chat_id, f"__Meaning__{mean}")```
Другие вопросы по тегам