Feat: Add group Parameter to the Decorator.on_error.

Signed-off-by: Ling-ex <nekochan@rizkiofficial.com>
This commit is contained in:
Ling-ex 2025-05-16 08:47:47 +00:00
parent 3a632d4590
commit d749f50140

View file

@ -24,26 +24,33 @@ from pyrogram.filters import Filter
class OnError:
def on_error(self=None, errors=None) -> Callable:
def on_error(
self=None,
errors=None,
group: int = 0,
) -> Callable:
"""Decorator for handling new errors.
This does the same thing as :meth:`~pyrogram.Client.add_handler` using the
:obj:`~pyrogram.handlers.MessageHandler`.
:obj:`~pyrogram.handlers.ErrorHandler`.
Parameters:
errors (:obj:`~Exception`, *optional*):
Pass one or more errors to allow only a subset of errors to be passed
in your function.
group (``int``, *optional*):
The group identifier, defaults to 0.
"""
def decorator(func: Callable) -> Callable:
if isinstance(self, pyrogram.Client):
self.add_handler(pyrogram.handlers.ErrorHandler(func, errors), 0)
self.add_handler(pyrogram.handlers.ErrorHandler(func, errors), group)
elif isinstance(self, Filter) or self is None:
if not hasattr(func, "handlers"):
func.handlers = []
func.handlers.append((pyrogram.handlers.ErrorHandler(func, self), 0))
func.handlers.append((pyrogram.handlers.ErrorHandler(func, self), group))
return func