Example #1
0
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
Example #2
0
    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')