Filter

You already learn how to create a command handler inside your custom plugins, now lets take a look how to use filter to it's handler.

~Anjani have implementation of Filter it's slightly different than built-in Pyrogram Filter. But that doesn't mean you can't combine built-in Pyrogram Filter and Anjani Filter.

Let's take a look.

from pyrogram import filters
from pyrogram.types import Message

from anjani import command, listener, plugin


class ExampleFilter(plugin.Plugin):

    @command.filters(filters.private)
    async def cmd_test(self, ctx: command.Context) -> None:
        await ctx.respond("We passed the Filter!", quote=True)

    @listener.filters(filters.private & filters.reply)
    async def on_message(self, message: Message) -> None:
        self.log.info("Received a reply message: %s", message.reply_to_message.text)

So what happens there? First we register the command /test with filters.private means the command only runs on private message (PM). Then we register on_message listener with filters.private and filters.reply.
Then if we called the command the bot will reply "We passed the Filter!" then log into terminal "Received a reply message: /test".

For more information about using a Filter refers to Pyrogram Filter documentation