Example #1
0
def rejudge(params, setHeader, user):
    id = params["id"]
    submission = Submission.get(id)
    if os.path.exists(f"/tmp/{id}"):
        shutil.rmtree(f"/tmp/{id}")
    runCode(submission)
    return submission.result
Example #2
0
def rejudge(params, setHeader, user):
    id = params["id"]
    submission = Submission.get(id)
    if os.path.exists(f"/tmp/{id}"):
        shutil.rmtree(f"/tmp/{id}")
    runCode(submission)
    return submission.result
Example #3
0
def changeResult(params, setHeader, user):
    id = params["id"]
    sub = Submission.get(id)
    if not sub:
        return "Error: incorrect id"
    sub.result = params["result"]
    sub.save()
    return "ok"
Example #4
0
def changeResult(params, setHeader, user):
    id = params["id"]
    sub = Submission.get(id)
    if not sub:
        return "Error: incorrect id"
    sub.result = params["result"]
    sub.save()
    return "ok"
def download(params, setHeader, user):
    id = params["id"]
    submission = Submission.get(id)
    files = [(f"submission.{exts[submission.language]}", submission.code)]
    for i in range(len(submission.inputs)):
        files.append((f"test{i}.txt", submission.inputs[i]))
    # send the json data
    return json.dumps(files)
def changeResult(params, setHeader, user):
    version = int(params["version"])
    id = params["id"]
    sub = Submission.get(id)
    contestDict = sub.problem.contests[Contest.getCurrent().id]

    scoreChange = -1 if params["result"] != "ok" else 1
    if (sub.user.id in contestDict["completed"] and scoreChange == -1) or (
            sub.user.id not in contestDict["completed"] and scoreChange == 1):
        if scoreChange == -1:
            contestDict["completed"].remove(sub.user.id)
        else:
            contestDict["completed"].append(sub.user.id)

        if sub.language == 'c':
            contestDict['c'] += scoreChange
        elif sub.language == 'cpp':
            contestDict['cpp'] += scoreChange
        elif sub.language == 'cs':
            contestDict['cs'] += scoreChange
        elif sub.language == 'java':
            contestDict['java'] += scoreChange
        elif sub.language == 'python2':
            contestDict['python2'] += scoreChange
        elif sub.language == 'python3':
            contestDict['python3'] += scoreChange
        elif sub.language == 'ruby':
            contestDict['ruby'] += scoreChange
        elif sub.language == 'vb':
            contestDict['vb'] += scoreChange
    if not sub:
        return "Error: incorrect id"
    elif sub.version != version:
        return "The submission has been changed by another judge since you loaded it. Please reload the sumbission to modify it."
    sub.result = params["result"]
    sub.status = params["status"]
    sub.version += 1
    sub.checkout = None
    sub.save()
    return "ok"
Example #7
0
def judge_submission_close(params, setHeader, user):
    submission = Submission.get(params["id"])
    if submission.version == int(params["version"]):
        submission.checkout = None
        submission.save()
    return "ok"
Example #8
0
def judge_submission(params, user):
    submission = Submission.get(params[0])
    force = params[1] == "force"
    if submission.checkout is not None and not force:
        return f"CONFLICT:{User.get(submission.checkout).username}"
    return SubmissionCard(submission, user, force)
Example #9
0
def judge_submission(params, user):
    return SubmissionCard(Submission.get(params[0]))
Example #10
0
def contestant_submission(params, user):
    return SubmissionCard(Submission.get(params[0]))
Example #11
0
def judge_submission(params, user):
    return SubmissionCard(Submission.get(params[0]))