@@ -115,8 +115,7 @@ def decorator(self, *args, **kwargs):
115115
116116 return decorator
117117
118- @staticmethod
119- def _post_message (url , data , msg_cls = Message , expect_list = False , timeout = None , ** kwargs ):
118+ def _post_message (self , url , data , msg_cls = Message , expect_list = False , timeout = None , ** kwargs ):
120119 reply_to_message_id = kwargs .get ('reply_to_message_id' )
121120 if reply_to_message_id :
122121 data ['reply_to_message_id' ] = reply_to_message_id
@@ -131,7 +130,7 @@ def _post_message(url, data, msg_cls=Message, expect_list=False, timeout=None, *
131130 reply_markup = reply_markup .to_json ()
132131 data ['reply_markup' ] = reply_markup
133132
134- result = request .post ( url , data , timeout = timeout )
133+ result = self . _request_wrapper ( request .post , url , data , timeout = timeout )
135134
136135 if isinstance (result , int ):
137136 # int covers both boolean & integer results
@@ -142,6 +141,11 @@ def _post_message(url, data, msg_cls=Message, expect_list=False, timeout=None, *
142141
143142 return msg_cls .de_json (result )
144143
144+ def _request_wrapper (self , method , url , * args , ** kwargs ):
145+ # classes inheriting from Bot, can wrap this method in order to perform retries
146+ # this is intended to be used only with request.post() & request.get()
147+ return method (url , * args , ** kwargs )
148+
145149 @log
146150 def getMe (self , ** kwargs ):
147151 """A simple method for testing your bot's auth token.
@@ -158,7 +162,7 @@ def getMe(self, **kwargs):
158162
159163 url = '{0}/getMe' .format (self .base_url )
160164
161- result = request .get ( url )
165+ result = self . _request_wrapper ( request .get , url )
162166
163167 self ._bot = User .de_json (result )
164168
0 commit comments