@@ -74,6 +74,8 @@ def __init__(self, token, threaded=True, skip_pending=False, num_threads=2):
7474 self .inline_handlers = []
7575 self .chosen_inline_handlers = []
7676 self .callback_query_handlers = []
77+ self .shipping_query_handlers = []
78+ self .pre_checkout_query_handlers = []
7779
7880 self .threaded = threaded
7981 if self .threaded :
@@ -146,6 +148,9 @@ def process_new_updates(self, updates):
146148 new_inline_querys = []
147149 new_chosen_inline_results = []
148150 new_callback_querys = []
151+ new_shipping_query = []
152+ new_pre_checkout_query = []
153+
149154 for update in updates :
150155 if update .update_id > self .last_update_id :
151156 self .last_update_id = update .update_id
@@ -163,6 +168,11 @@ def process_new_updates(self, updates):
163168 new_chosen_inline_results .append (update .chosen_inline_result )
164169 if update .callback_query :
165170 new_callback_querys .append (update .callback_query )
171+ if update .shipping_query :
172+ new_shipping_query .append (update .shipping_query )
173+ if update .pre_checkout_query :
174+ new_pre_checkout_query .append (update .pre_checkout_query )
175+
166176 logger .debug ('Received {0} new updates' .format (len (updates )))
167177 if len (new_messages ) > 0 :
168178 self .process_new_messages (new_messages )
@@ -885,6 +895,28 @@ def decorator(handler):
885895 def add_callback_query_handler (self , handler_dict ):
886896 self .callback_query_handlers .append (handler_dict )
887897
898+ def shipping_query_handler (self , func , ** kwargs ):
899+ def decorator (handler ):
900+ handler_dict = self ._build_handler_dict (handler , func = func , ** kwargs )
901+ self .add_shipping_query_handler (handler_dict )
902+ return handler
903+
904+ return decorator
905+
906+ def add_shipping_query_handler (self , handler_dict ):
907+ self .shipping_query_handlers .append (handler_dict )
908+
909+ def pre_checkout_query_handler (self , func , ** kwargs ):
910+ def decorator (handler ):
911+ handler_dict = self ._build_handler_dict (handler , func = func , ** kwargs )
912+ self .add_pre_checkout_queryhandler (handler_dict )
913+ return handler
914+
915+ return decorator
916+
917+ def add_pre_checkout_queryhandler (self , handler_dict ):
918+ self .pre_checkout_query_handlers .append (handler_dict )
919+
888920 def _test_message_handler (self , message_handler , message ):
889921 for filter , filter_value in six .iteritems (message_handler ['filters' ]):
890922 if filter_value is None :
0 commit comments