Filters
Filters determine which updates should be processed by a handler.
Built-in Filters
from aiomax import filters
# Message type filters
filters.text
filters.photo
filters.video
filters.audio
filters.document
filters.sticker
filters.animation
filters.voice
filters.contact
filters.location
# Command filter
filters.command("/start")
filters.command(["/start", "/help"])
# Chat type filters
filters.private
filters.group
filters.channel
# User filters
filters.user(user_id)
filters.user([user_id1, user_id2])
Custom Filters
from aiomax import filters
class IsAdmin(filters.BaseFilter):
async def check(self, message):
return message.from_user.id == ADMIN_ID
@bot.on_message(IsAdmin())
async def admin_only(message):
pass
Combining Filters
# AND
filters.text & filters.private
# OR
filters.command("/start") | filters.command("/help")
# NOT
~filters.bot
# Complex
(filters.text | filters.photo) & filters.private & ~filters.bot
Regex Filter
import re
@bot.on_message(filters.regex(r'^/ban\s+(\d+)'))
async def ban_user(message):
user_id = message.matches.group(1)
See Also
- Handlers - Working with handlers