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="创建题目成功!点击确定进入评测设置的页面"))
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)
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="修改题目成功!"))
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))
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))
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))
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))
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))
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))
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="创建队列成功!异步操作有一定的延时,请在【操作历史】查看执行结果。"))
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 "编译成功!"))