def test(req): p = None if req.method == 'POST': wait = True form = testform(req.POST) if form.is_valid(): ind = form.cleaned_data['ind'] oj = form.cleaned_data['oj'] try: p = Problem.objects.get(oj=oj, problem_id=ind) except: p = Problem(oj=oj, problem_id=ind, judge_type=1) p.save() c = Connect() c.download_problem(oj, ind, p.id) else: if p.defunct <= 0: c = Connect() c.download_problem(oj, ind, p.id) else: wait = False return render_to_response('problem_test.html', { 'form': form, 'path': req.path, 'wait': wait, 'p': p, }, context_instance=RequestContext(req)) else: form = testform() return render_to_response('problem_test.html', { 'form': form, 'path': req.path, 'wait': True, 'p': p, }, context_instance=RequestContext(req))
def get_problem_info(req, oj, problem_id, index): problem_id = int(problem_id) data = { 'pid': 0, 'title': '', 'index': index, 'new': 0, } try: pinfo = Problem.objects.get(oj=oj, problem_id=problem_id) except: if oj != 'neau': c = Connect() title = c.test_problem(oj, problem_id).decode('UTF-8') if len(title): p = Problem(oj=oj, problem_id=problem_id, judge_type=1) p.save() c = Connect() c.download_problem(oj, problem_id, p.id) data['pid'] = p.id data['title'] = title data['new'] = 1 else: data = { 'pid': pinfo.id, 'title': pinfo.title, 'index': index, 'new': 0 } return JsonResponse(data)
def get_problem(req, pid): data = { 'wait': 1 } try: p = Problem.objects.get(id=pid) except: raise Http404() if p.defunct <= 0: c = Connect() c.download_problem(p.oj, p.problem_id, p.id) else: data = { 'wait': 0 } return JsonResponse(data)
def problem_main(req, pid): if req.method == 'GET': try: p = Problem.objects.get(id=pid) except: return render_to_response('problem_error.html') wait = True if p.judge_type == 1: if p.defunct <= 0: c = Connect() c.download_problem(p.oj, p.problem_id, p.id) else: wait = False p.defunct = p.defunct - 1 p.save() return render_to_response('problem_main.html', { 'path': req.path, 'p': p, 'wait': wait }, context_instance=RequestContext(req))