@@ -11,13 +11,21 @@ class CodeforcesApi(CodeforcesApiRequestMaker):
1111 Class for using official API requests.
1212 """
1313
14+ session = None
15+
16+ def __init__ (self ):
17+ """
18+ Initializing class. All we will need is session to optimize performance.
19+ """
20+ self .session = requests .Session ()
21+
1422 def blog_entry_comments (self , blog_entry_id ):
1523 """
1624 Get blogEntry.commnets for blog , blog_entry_id required.
1725
1826 Returns parsed response from codeforces.com.
1927 """
20- request = requests .get (
28+ request = self . session .get (
2129 self .generate_url (
2230 "blogEntry.comments" , ** {"blogEntryId" : str (blog_entry_id )}
2331 )
@@ -33,7 +41,7 @@ def blog_entry_view(self, blog_entry_id):
3341 request_url = self .generate_url (
3442 "blogEntry.view" , ** {"blogEntryId" : str (blog_entry_id )}
3543 )
36- request = requests .get (request_url )
44+ request = self . session .get (request_url )
3745 return self .get_response (request )
3846
3947 def contest_hacks (self , contest_id ):
@@ -45,7 +53,7 @@ def contest_hacks(self, contest_id):
4553 request_url = self .generate_url (
4654 "contest.hacks" , ** {"contestId" : str (contest_id )}
4755 )
48- request = requests .get (request_url )
56+ request = self . session .get (request_url )
4957 return self .get_response (request )
5058
5159 def contest_list (self , gym = False ):
@@ -55,7 +63,7 @@ def contest_list(self, gym=False):
5563 Returns parsed response from codeforces.com
5664 """
5765 request_url = self .generate_url ("contest.list" , ** {"gym" : str (gym )})
58- request = requests .get (request_url )
66+ request = self . session .get (request_url )
5967 return self .get_response (request )
6068
6169 def contest_rating_changes (self , contest_id ):
@@ -67,7 +75,7 @@ def contest_rating_changes(self, contest_id):
6775 request_url = self .generate_url (
6876 "contest.ratingChanges" , ** {"contestId" : str (contest_id )}
6977 )
70- request = requests .get (request_url )
78+ request = self . session .get (request_url )
7179 return self .get_response (request )
7280
7381 def contest_standings (
@@ -113,7 +121,7 @@ def contest_standings(
113121 if room != - 1 :
114122 parameters ["room" ] = str (room )
115123 request_url = self .generate_url ("contest.standings" , ** parameters )
116- request = requests .get (request_url )
124+ request = self . session .get (request_url )
117125 return self .get_response (request )
118126
119127 def contest_status (self , contest_id , handle = "" , start = - 1 , count = - 1 ):
@@ -138,7 +146,7 @@ def contest_status(self, contest_id, handle="", start=-1, count=-1):
138146 if count != - 1 :
139147 parameters ["count" ] = str (count )
140148 request_url = self .generate_url ("contest.status" , ** parameters )
141- request = requests .get (request_url )
149+ request = self . session .get (request_url )
142150 return self .get_response (request )
143151
144152 def problemset_problems (self , tags = ["" ], problemset_name = "" ):
@@ -161,7 +169,7 @@ def problemset_problems(self, tags=[""], problemset_name=""):
161169 if problemset_name != "" :
162170 parameters ["problemsetName" ] = problemset_name
163171 request_url = self .generate_url ("problemset.problems" , ** parameters )
164- request = requests .get (request_url )
172+ request = self . session .get (request_url )
165173 return self .get_response (request )
166174
167175 def problemset_recent_status (self , count , problemset_name = "" ):
@@ -184,7 +192,7 @@ def problemset_recent_status(self, count, problemset_name=""):
184192 if problemset_name != "" :
185193 parameters ["problemsetName" ] = problemset_name
186194 request_url = self .generate_url ("problemset.recentStatus" , ** parameters )
187- request = requests .get (request_url )
195+ request = self . session .get (request_url )
188196 return self .get_response (request )
189197
190198 def recent_actions (self , max_count = 100 ):
@@ -200,7 +208,7 @@ def recent_actions(self, max_count=100):
200208 if max_count > 100 :
201209 raise OverflowError ("Max_count should be less or equal to 1000" )
202210 request_url = self .generate_url ("recentActions" , ** {"maxCount" : str (max_count )})
203- request = requests .get (request_url )
211+ request = self . session .get (request_url )
204212 return self .get_response (request )
205213
206214 def user_blog_entries (self , handle ):
@@ -214,7 +222,7 @@ def user_blog_entries(self, handle):
214222 if handle == "" :
215223 raise TypeError ("Handle should not be empty" )
216224 request_url = self .generate_url ("user.blogEntries" , ** {"handle" : str (handle )})
217- request = requests .get (request_url )
225+ request = self . session .get (request_url )
218226 return self .get_response (request )
219227
220228 def user_friends (self , only_online = False ):
@@ -232,7 +240,7 @@ def user_friends(self, only_online=False):
232240 request_url = self .generate_url (
233241 "user.friends" , ** {"onlyOnline" : str (only_online )}
234242 )
235- request = requests .get (request_url )
243+ request = self . session .get (request_url )
236244 return self .get_response (request )
237245
238246 def user_info (self , handles ):
@@ -248,7 +256,7 @@ def user_info(self, handles):
248256 if len (handles ) > 10000 :
249257 raise OverflowError ("Max count of handles should be less or equal to 10000" )
250258 request_url = self .generate_url ("user.info" , ** {"handles" : handles })
251- request = requests .get (request_url )
259+ request = self . session .get (request_url )
252260 return self .get_response (request )
253261
254262 def user_rated_list (self , active_only = False ):
@@ -262,7 +270,7 @@ def user_rated_list(self, active_only=False):
262270 request_url = self .generate_url (
263271 "user.ratedList" , ** {"activeOnly" : str (active_only )}
264272 )
265- request = requests .get (request_url )
273+ request = self . session .get (request_url )
266274 return self .get_response (request )
267275
268276 def user_rating (self , handle ):
@@ -274,7 +282,7 @@ def user_rating(self, handle):
274282 Returns parsed response from codeforces.com.
275283 """
276284 request_url = self .generate_url ("user.rating" , ** {"handle" : str (handle )})
277- request = requests .get (request_url )
285+ request = self . session .get (request_url )
278286 return self .get_response (request )
279287
280288 def user_status (self , handle , start = - 1 , count = - 1 ):
@@ -297,5 +305,5 @@ def user_status(self, handle, start=-1, count=-1):
297305 if count != - 1 :
298306 parameters ["count" ] = str (count )
299307 request_url = self .generate_url ("user.status" , ** parameters )
300- request = requests .get (request_url )
308+ request = self . session .get (request_url )
301309 return self .get_response (request )
0 commit comments