Обработчик пирограммы не работает при попытке вызвать функцию
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}")```