Example #1
0
 def tasks(self):
     q = self._get_submit()[0]
     if not q:
         data = self.opener.open(self.base_url).read().decode('utf-8')
         ans = []
         sp = data.split(
             '<td class="id">\r\n                        <a href="' +
             self.base_url.rsplit('codeforces.com', 1)[1] + '/problem/')
         if sp[0].rfind('<') > sp[0].rfind('>'):
             return ans
         for i in sp[1:]:
             ans.append(i.split('"', 1)[0])
         return [bjtypes.task_t(i, j, None) for i, j in enumerate(ans)]
     return [bjtypes.task_t(i, j, None) for i, j in enumerate(q)]
Example #2
0
 def tasks(self):
     data = self._get_dashboard("Failed to fetch task list.")
     return [
         bjtypes.task_t(i,
                        hex(i)[2:], None)
         for i in (int(i['id'], 16) for i in data['challenge']['tasks'])
     ]
Example #3
0
 def tasks(self):
     code, headers, data = self._cache_get(self.urls['summary'])
     if b'<input type="submit" name="action_35" value="Change!" />' in data:
         raise BruteError("Password change is required.")
     if code != 200:
         raise BruteError("Failed to fetch task list.")
     data = data.decode('utf-8')
     #tl = self._task_list(data)
     ti = self._task_ids(data)
     #if len(tl) < len(ti): tl.extend([None]*(len(ti)-len(tl)))
     #else: ti.extend([None]*(len(tl)-len(ti)))
     return [bjtypes.task_t(i, j, None) for i, j in ti]
Example #4
0
 def tasks(self):
     if not self.registered: return []
     return [bjtypes.task_t(i, str(i), None) for i in self.task_list]
Example #5
0
 def tasks(self):
     code, headers, data = self._cache_get(self.url+'?SID=%s&EJSID=%s&action=contest-status-json&json=1'%self.cookies, False)
     data = mbjson(data)
     if code != 200 or not data or not data['ok']:
         raise BruteError("Failed to fetch task list.")
     return [bjtypes.task_t(i['id'], i['short_name'], i['long_name']) for i in data['result']['problems']]
Example #6
0
 def tasks(self):
     code, headers, data = self._cache_get('/contests/'+urlescape(self.contest)+'/problems')
     if code != 200: return []
     return [bjtypes.task_t(i, j['rel_name'], j['name']) for i, j in enumerate(data)]