2
0
mirror of https://github.com/pyrogram/pyrogram synced 2025-08-28 21:07:59 +00:00

Make handlers accept filters

This commit is contained in:
Dan 2018-04-10 00:24:03 +02:00
parent fb4e98b0b5
commit 142ce07576
3 changed files with 17 additions and 9 deletions

View File

@ -203,15 +203,15 @@ class Client:
self.dispatcher = Dispatcher(self, workers) self.dispatcher = Dispatcher(self, workers)
self.update_handler = None self.update_handler = None
def on(self, handler, group): def on(self, handler, group, filters=None):
def decorator(f): def decorator(func):
self.add_handler(handler(f), group) self.add_handler(handler(func, filters), group)
return f return func
return decorator return decorator
def on_message(self, group: int = 0): def on_message(self, filters=None, group: int = 0):
return self.on(pyrogram.MessageHandler, group) return self.on(pyrogram.MessageHandler, group, filters)
def on_raw_update(self, group: int = 0): def on_raw_update(self, group: int = 0):
return self.on(pyrogram.RawUpdateHandler, group) return self.on(pyrogram.RawUpdateHandler, group)

View File

@ -18,5 +18,6 @@
class Handler: class Handler:
def __init__(self, callback: callable): def __init__(self, callback: callable, filters=None):
self.callback = callback self.callback = callback
self.filters = filters

View File

@ -20,5 +20,12 @@ from .handler import Handler
class MessageHandler(Handler): class MessageHandler(Handler):
def __init__(self, callback: callable): def __init__(self, callback: callable, filters=None):
super().__init__(callback) super().__init__(callback, filters)
def check(self, message):
return (
self.filters(message)
if self.filters
else True
)