Esempio n. 1
0
def create_problem(request, psid):
    """
    发布新题目
    :param request:
    :param psid:
    :return:
    """
    wejudge_session = WeJudgeSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ProblemManagerController(request, response)
    manager.get_problemset(psid) if int(psid) > 0 else ""

    problem = manager.create_problem()

    return response.json(WeJudgeResult(problem.id, msg="创建题目成功!点击确定进入评测设置的页面"))
Esempio n. 2
0
def tcmaker_callback(request, pid, tcsid):
    """
    使用测试数据生成器生成目标输出结果
    :param request:
    :param pid:
    :param tcsid:
    :return:
    """
    wejudge_session = WeJudgeSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ProblemManagerController(request, response)

    manager.get_problem(pid)

    result = manager.tcmaker_callback(tcsid)

    return response.text(result)
Esempio n. 3
0
def modify_problem(request, pid, psid):
    """
    编辑题目
    :param request:
    :param pid
    :param psid
    :return:
    """
    wejudge_session = WeJudgeSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ProblemManagerController(request, response)
    manager.get_problemset(psid) if int(psid) > 0 else ""
    manager.get_problem(pid)

    problem = manager.modify_problem()

    return response.json(WeJudgeResult(problem.id, msg="修改题目成功!"))
Esempio n. 4
0
def remove_demo_cases(request, pid, psid):
    """
    删除填空用例设置
    :param request:
    :param pid:
    :param psid:
    :return:
    """
    wejudge_session = WeJudgeSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ProblemManagerController(request, response)

    manager.get_problemset(psid) if int(psid) > 0 else ""
    manager.get_problem(pid)

    result = manager.remove_demo_cases()

    return response.json(WeJudgeResult(result))
Esempio n. 5
0
def get_tcmaker_status(request, pid, psid):
    """
    使用测试数据生成器生成目标输出结果
    :param request:
    :param pid:
    :param psid:
    :return:
    """
    wejudge_session = WeJudgeSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ProblemManagerController(request, response)

    manager.get_problemset(psid) if int(psid) > 0 else ""
    manager.get_problem(pid)

    result = manager.get_tcmaker_status()

    return response.json(WeJudgeResult(data=result))
Esempio n. 6
0
def save_test_cases_content(request, pid, psid):
    """
    保存测试数据的内容
    :param request:
    :param pid:
    :param psid:
    :return:
    """
    wejudge_session = WeJudgeSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ProblemManagerController(request, response)

    manager.get_problemset(psid) if int(psid) > 0 else ""
    manager.get_problem(pid)

    result = manager.save_test_cases_content()

    return response.json(WeJudgeResult(result))
Esempio n. 7
0
def toggle_judge(request, pid, psid):
    """
    评测开关
    :param request:
    :param pid:
    :param psid:
    :return:
    """
    wejudge_session = WeJudgeSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ProblemManagerController(request, response)

    manager.get_problemset(psid) if int(psid) > 0 else ""
    manager.get_problem(pid)

    test_cases = manager.toggle_judge()

    return response.json(WeJudgeResult(test_cases))
Esempio n. 8
0
def remove_from_problemset(request, pid, psid):
    """
    从题库中移除题目
    :param request:
    :param pid:  Problem Entity ID
    :param psid: Problemset ID
    :return:
    """
    wejudge_session = WeJudgeSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ProblemManagerController(request, response)

    manager.get_problem(pid)
    manager.get_problemset(psid) if int(psid) > 0 else ""

    result = manager.remove_from_problemset()

    return response.json(WeJudgeResult(result))
Esempio n. 9
0
def publish_to_problemset(request, pid, psid):
    """
    获取题目对于题目集合的关联
    :param request:
    :param pid:  Problem Entity ID
    :param psid: Problemset ID
    :return:
    """
    wejudge_session = WeJudgeSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ProblemManagerController(request, response)

    manager.get_problem(pid)
    manager.get_problemset(psid) if int(psid) > 0 else ""

    result = manager.publish_to_problemset()

    return response.json(WeJudgeResult(result))
Esempio n. 10
0
def tcmaker_run(request, pid, psid):
    """
    使用测试数据生成器生成目标输出结果
    :param request:
    :param pid:
    :param psid:
    :return:
    """
    wejudge_session = WeJudgeSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ProblemManagerController(request, response)

    manager.get_problemset(psid) if int(psid) > 0 else ""
    manager.get_problem(pid)

    result = manager.tcmaker_run()

    return response.json(
        WeJudgeResult(data=result, msg="创建队列成功!异步操作有一定的延时,请在【操作历史】查看执行结果。"))
Esempio n. 11
0
def save_specical_judge_program(request, pid, psid):
    """
    保存特殊评测的程序代码
    :param request:
    :param pid:
    :param psid:
    :return:
    """
    wejudge_session = WeJudgeSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ProblemManagerController(request, response)

    manager.get_problemset(psid) if int(psid) > 0 else ""
    manager.get_problem(pid)

    result, msg = manager.save_specical_judge_program()

    return response.json(
        WeJudgeResult(result, msg="编译错误:%s" % msg if msg != "" else "编译成功!"))