def submit(info, timeout=None, waittime=2, maxtry=10): """ usage: info = { 'user_id': (user id), 'password': (password), 'code': (source code), 'problem_id': (problem id, integer or string), 'lang': (language "C","C++",or"JAVA") } submit(info) #submit(info, timeout=3) # seconds """ # check last runid try: resp = api.statuslog(user_id=info['user_id']) rid = resp.status[0].run_id except Exception, e: raise e
try: resp = api.statuslog(user_id=info['user_id']) rid = resp.status[0].run_id except Exception, e: raise e # submit ret = None try: ret = submit_noresult(info, timeout) except Exception, e: raise e if 'UserID or Password is Wrong.' in ret: raise Exception('userid or password is wrong.') # wait until update ntry = 0 while True: try: resp = api.statuslog(user_id=info['user_id']) except Exception, e: raise e new_rid = resp.status[0].run_id if new_rid > rid: return resp.status[0] time.sleep(waittime) ntry += 1 if ntry == maxtry: raise Exception('maximum try count exceeded')