@@ -11,13 +11,21 @@ class CodeforcesApi(CodeforcesApiRequestMaker):
11
11
Class for using official API requests.
12
12
"""
13
13
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
+
14
22
def blog_entry_comments (self , blog_entry_id ):
15
23
"""
16
24
Get blogEntry.commnets for blog , blog_entry_id required.
17
25
18
26
Returns parsed response from codeforces.com.
19
27
"""
20
- request = requests .get (
28
+ request = self . session .get (
21
29
self .generate_url (
22
30
"blogEntry.comments" , ** {"blogEntryId" : str (blog_entry_id )}
23
31
)
@@ -33,7 +41,7 @@ def blog_entry_view(self, blog_entry_id):
33
41
request_url = self .generate_url (
34
42
"blogEntry.view" , ** {"blogEntryId" : str (blog_entry_id )}
35
43
)
36
- request = requests .get (request_url )
44
+ request = self . session .get (request_url )
37
45
return self .get_response (request )
38
46
39
47
def contest_hacks (self , contest_id ):
@@ -45,7 +53,7 @@ def contest_hacks(self, contest_id):
45
53
request_url = self .generate_url (
46
54
"contest.hacks" , ** {"contestId" : str (contest_id )}
47
55
)
48
- request = requests .get (request_url )
56
+ request = self . session .get (request_url )
49
57
return self .get_response (request )
50
58
51
59
def contest_list (self , gym = False ):
@@ -55,7 +63,7 @@ def contest_list(self, gym=False):
55
63
Returns parsed response from codeforces.com
56
64
"""
57
65
request_url = self .generate_url ("contest.list" , ** {"gym" : str (gym )})
58
- request = requests .get (request_url )
66
+ request = self . session .get (request_url )
59
67
return self .get_response (request )
60
68
61
69
def contest_rating_changes (self , contest_id ):
@@ -67,7 +75,7 @@ def contest_rating_changes(self, contest_id):
67
75
request_url = self .generate_url (
68
76
"contest.ratingChanges" , ** {"contestId" : str (contest_id )}
69
77
)
70
- request = requests .get (request_url )
78
+ request = self . session .get (request_url )
71
79
return self .get_response (request )
72
80
73
81
def contest_standings (
@@ -113,7 +121,7 @@ def contest_standings(
113
121
if room != - 1 :
114
122
parameters ["room" ] = str (room )
115
123
request_url = self .generate_url ("contest.standings" , ** parameters )
116
- request = requests .get (request_url )
124
+ request = self . session .get (request_url )
117
125
return self .get_response (request )
118
126
119
127
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):
138
146
if count != - 1 :
139
147
parameters ["count" ] = str (count )
140
148
request_url = self .generate_url ("contest.status" , ** parameters )
141
- request = requests .get (request_url )
149
+ request = self . session .get (request_url )
142
150
return self .get_response (request )
143
151
144
152
def problemset_problems (self , tags = ["" ], problemset_name = "" ):
@@ -161,7 +169,7 @@ def problemset_problems(self, tags=[""], problemset_name=""):
161
169
if problemset_name != "" :
162
170
parameters ["problemsetName" ] = problemset_name
163
171
request_url = self .generate_url ("problemset.problems" , ** parameters )
164
- request = requests .get (request_url )
172
+ request = self . session .get (request_url )
165
173
return self .get_response (request )
166
174
167
175
def problemset_recent_status (self , count , problemset_name = "" ):
@@ -184,7 +192,7 @@ def problemset_recent_status(self, count, problemset_name=""):
184
192
if problemset_name != "" :
185
193
parameters ["problemsetName" ] = problemset_name
186
194
request_url = self .generate_url ("problemset.recentStatus" , ** parameters )
187
- request = requests .get (request_url )
195
+ request = self . session .get (request_url )
188
196
return self .get_response (request )
189
197
190
198
def recent_actions (self , max_count = 100 ):
@@ -200,7 +208,7 @@ def recent_actions(self, max_count=100):
200
208
if max_count > 100 :
201
209
raise OverflowError ("Max_count should be less or equal to 1000" )
202
210
request_url = self .generate_url ("recentActions" , ** {"maxCount" : str (max_count )})
203
- request = requests .get (request_url )
211
+ request = self . session .get (request_url )
204
212
return self .get_response (request )
205
213
206
214
def user_blog_entries (self , handle ):
@@ -214,7 +222,7 @@ def user_blog_entries(self, handle):
214
222
if handle == "" :
215
223
raise TypeError ("Handle should not be empty" )
216
224
request_url = self .generate_url ("user.blogEntries" , ** {"handle" : str (handle )})
217
- request = requests .get (request_url )
225
+ request = self . session .get (request_url )
218
226
return self .get_response (request )
219
227
220
228
def user_friends (self , only_online = False ):
@@ -232,7 +240,7 @@ def user_friends(self, only_online=False):
232
240
request_url = self .generate_url (
233
241
"user.friends" , ** {"onlyOnline" : str (only_online )}
234
242
)
235
- request = requests .get (request_url )
243
+ request = self . session .get (request_url )
236
244
return self .get_response (request )
237
245
238
246
def user_info (self , handles ):
@@ -248,7 +256,7 @@ def user_info(self, handles):
248
256
if len (handles ) > 10000 :
249
257
raise OverflowError ("Max count of handles should be less or equal to 10000" )
250
258
request_url = self .generate_url ("user.info" , ** {"handles" : handles })
251
- request = requests .get (request_url )
259
+ request = self . session .get (request_url )
252
260
return self .get_response (request )
253
261
254
262
def user_rated_list (self , active_only = False ):
@@ -262,7 +270,7 @@ def user_rated_list(self, active_only=False):
262
270
request_url = self .generate_url (
263
271
"user.ratedList" , ** {"activeOnly" : str (active_only )}
264
272
)
265
- request = requests .get (request_url )
273
+ request = self . session .get (request_url )
266
274
return self .get_response (request )
267
275
268
276
def user_rating (self , handle ):
@@ -274,7 +282,7 @@ def user_rating(self, handle):
274
282
Returns parsed response from codeforces.com.
275
283
"""
276
284
request_url = self .generate_url ("user.rating" , ** {"handle" : str (handle )})
277
- request = requests .get (request_url )
285
+ request = self . session .get (request_url )
278
286
return self .get_response (request )
279
287
280
288
def user_status (self , handle , start = - 1 , count = - 1 ):
@@ -297,5 +305,5 @@ def user_status(self, handle, start=-1, count=-1):
297
305
if count != - 1 :
298
306
parameters ["count" ] = str (count )
299
307
request_url = self .generate_url ("user.status" , ** parameters )
300
- request = requests .get (request_url )
308
+ request = self . session .get (request_url )
301
309
return self .get_response (request )
0 commit comments