コード例 #1
0
ファイル: views.py プロジェクト: codecola1/neauoj
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))
コード例 #2
0
ファイル: views.py プロジェクト: codecola1/neauoj
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)
コード例 #3
0
ファイル: views.py プロジェクト: codecola1/neauoj
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)
コード例 #4
0
ファイル: views.py プロジェクト: codecola1/neauoj
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))