Как исправить синтаксическую ошибку pyrogram.filters.command?

Я пытаюсь создать бот для телеграмм с клавиатурой, но я столкнулся с ошибкой, помогите мне. Я много раз пытаюсь исправить, но терпит неудачу.

Мой код:

      from pyrogram.types import ReplyKeyboardMarkup
from pyrogram import client

bot = ("bot")

@pyrogram.filters.command(commands: Union["start"] = 'start', prefixes: Union["/","!"], case_sensitive: bool = False)

async def example():
    
    bot.send_message(
        chat_id=message.chat.id, text="test",
        reply_markup = ReplyKeyboardMarkup(

    [

      ["test button"],

      ["test button 2"]

    ]))

Ошибка:

      2021-04-16T11:57:40.864700+00:00 app[worker.1]:   File "/app/main.py", line 6
2021-04-16T11:57:40.864717+00:00 app[worker.1]:     @pyrogram.filters.command(commands: Union["start"] = 'start', prefixes: Union["/","!"], case_sensitive: bool = False)
2021-04-16T11:57:40.864852+00:00 app[worker.1]:                                       ^
2021-04-16T11:57:40.864858+00:00 app[worker.1]: SyntaxError: invalid syntax

1 ответ

Вы используете command filter в качестве декоратора, что не так, как работает обработка обновления Pyrogram.

Пожалуйста, прочтите соответствующую документацию о том, как использовать фильтры .


Изменить, потому что мой исходный ответ не отвечает на поставленный вопрос.

Сами фильтры нельзя использовать в качестве декораторов. Фильтры - это аргументы, которые вы можете передать декоратору или, другими словами, обработчику обновления.

      from pyrogram import Client, filters

app = Client()

@app.on_message(  # the actual decorator
    filters.command("start")  # the command filter
)
def handler(app, message):
    message.reply("hi")

app.run()
Другие вопросы по тегам