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)
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
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