Esempio n. 1
0
def Submit(problemid,req,contest_id=0):
	if not modules.Is_Loggedin():
		flash('请先登录','error')
		return modules.Page_Back()

	code = req['code']
	if len(code) < 10:
		flash('这么短真的没问题?','error')
		return modules.Page_Back()

	username = request.cookies['username']
	last_submit_time = modules.Get_Session('last_submit_time',username)
	now_time = datetime.datetime.now()

	if last_submit_time != None:
		seconds = (now_time-last_submit_time).seconds
		if seconds < submit_delay_time:
			flash('请在 %ss 后提交'%(submit_delay_time-seconds),'error')
			return modules.Page_Back()
	modules.Set_Session('last_submit_time',username,now_time)

	maxid_result = db.Fetchone("SELECT MAX(id) FROM records;")[0]
	runid = 1 if maxid_result == None else int(maxid_result) + 1
	nowtime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
	db.Execute("INSERT INTO records VALUES(%s,%s,%s,%s,0,0,'','{\"subtasks\":[]}',0,0,'',%s,%s,%s);",(runid,problemid,code,'cpp',username,contest_id,nowtime))

	r=redis.Redis(host='localhost',port=6379,decode_responses=True)
	r.rpush('intoj-waiting',str(runid))

	return redirect('/record/%d'%runid)
Esempio n. 2
0
def Send_Zisheng():
    if not modules.Is_Loggedin():
        flash('请先登录', 'error')
        return False
    if not config.config['site']['zisheng']['enable']:
        flash('管理员已关闭「吱声」', 'error')
        return False

    message = request.form['message']
    max_length = config.config['site']['zisheng']['max_length']
    if len(message) > max_length:
        flash('超过最长长度: %d' % max_length, 'error')
        return False

    username = request.cookies['username']
    last_zisheng_time = modules.Get_Session('last_zisheng_time', username)
    now_time = datetime.datetime.now()
    if last_zisheng_time != None:
        seconds = (now_time - last_zisheng_time).seconds
        if seconds < zisheng_delay_time:
            flash('请在 %ss 后提交' % (zisheng_delay_time - seconds), 'error')
            return False
    modules.Set_Session('last_zisheng_time', username, now_time)

    nowtime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    db.Execute("INSERT INTO zisheng VALUES(NULL,%s,%s,%s);",
               (username, request.form['message'], nowtime))

    flash('发送成功', 'ok')
    return True
Esempio n. 3
0
def Run():
	if request.method == 'GET':
		return render_template('login.html')
	else:
		is_success,message = Can_Login(request.form)
		if not is_success:
			flash(message,'error')
			return render_template('login.html')
		else:
			username = request.form['username']
			modules.Set_Session('client_keys',username,message)
			# 此时message就是clientkey
			resp = Response(render_template('jumpto.html',link='/'))
			resp.set_cookie('username',username,max_age=60*60*24*30)
			resp.set_cookie('client_key',message,max_age=60*60*24*30)
			flash(r'登录成功','ok')
			return resp