3737logger .setLevel (logging .ERROR )
3838
3939from telebot import apihelper , util , types
40- from telebot .handler_backends import HandlerBackend , MemoryHandlerBackend , FileHandlerBackend , BaseMiddleware , CancelUpdate , SkipHandler , State
40+ from telebot .handler_backends import (
41+ HandlerBackend , MemoryHandlerBackend , FileHandlerBackend , BaseMiddleware ,
42+ CancelUpdate , SkipHandler , State , ContinueHandling
43+ )
4144from telebot .custom_filters import SimpleCustomFilter , AdvancedCustomFilter
4245
4346
@@ -6111,13 +6114,14 @@ def _run_middlewares_and_handler(self, message, handlers, middlewares, update_ty
61116114 if not process_handler : continue
61126115 for i in inspect .signature (handler ['function' ]).parameters :
61136116 params .append (i )
6117+ result = None
61146118 if len (params ) == 1 :
6115- handler ['function' ](message )
6119+ result = handler ['function' ](message )
61166120 elif "data" in params :
61176121 if len (params ) == 2 :
6118- handler ['function' ](message , data )
6122+ result = handler ['function' ](message , data )
61196123 elif len (params ) == 3 :
6120- handler ['function' ](message , data = data , bot = self )
6124+ result = handler ['function' ](message , data = data , bot = self )
61216125 else :
61226126 logger .error ("It is not allowed to pass data and values inside data to the handler. Check your handler: {}" .format (handler ['function' ]))
61236127 return
@@ -6132,8 +6136,9 @@ def _run_middlewares_and_handler(self, message, handlers, middlewares, update_ty
61326136 if len (data_copy ) > len (params ) - 1 : # remove the message parameter
61336137 logger .error ("You are passing more parameters than the handler needs. Check your handler: {}" .format (handler ['function' ]))
61346138 return
6135- handler ["function" ](message , ** data_copy )
6136- break
6139+ result = handler ["function" ](message , ** data_copy )
6140+ if not isinstance (result , ContinueHandling ):
6141+ break
61376142 except Exception as e :
61386143 handler_error = e
61396144 if self .exception_handler :
0 commit comments