def update_a_complaint(self,key,method): if self.ex: cm = Complaint.objects.get(titleid=self.ex, userid=self.us,state="NORMAL") from exercise.dao import updateEXDao dao = updateEXDao() dao.update_exercise_complaint( method ,ex=self.ex) dao.update_ex_save() elif self.au: cm = Complaint.objects.get(authorid=self.au, userid=self.us,state="NORMAL") dao = userDao({'us':self.au}) dao.update_complaint(method) dao.save_update() elif self.tp: cm = Complaint.objects.get(topicid=self.tp, userid=self.us,state="NORMAL") from bbs.dao import BBSDao dao = BBSDao({'bbs':self.tp}) dao.update_Tcomplaint(method) dao.update_Tsave() elif self.op: cm = Complaint.objects.get(opinionid=self.op, userid=self.us,state="NORMAL") from bbs.dao import OpinDao dao = OpinDao({'op':self.op}) dao.update_Ocomplaint(method) dao.update_save() elif self.rs: cm = Complaint.objects.get(resourceid=self.rs, userid=self.us,state="NORMAL") dao = rsUpdateDao(self.rs) dao.update_complaint(method) dao.update_save() if key=='state': cm.state = 'CANCEL' cm.save()
def picture(req): if req.COOKIES.has_key('userid'): file = req.FILES['uploadedfile'] # @ReservedAssignment filename = req.POST['filename'].decode('utf-8').encode('utf-8') if file: userid = req.COOKIES['userid'].decode('utf-8').encode('utf-8') uploadHead({'userid':userid,'file':file,'filename':filename}) return HttpResponse(json.dumps({'head':userDao({'userid':userid}).select_user()["head"]}),content_type="application/json") return HttpResponse(json.dumps({'tips':'上传失败'}),content_type="application/json")
def insert_a_opinion(self,req): date_to = datetime.datetime.now() date_from = date_to - datetime.timedelta(minutes=1) if not Opinion.objects.filter(userid=self.us,topicid=self.bbs,time__range=[date_from, date_to]): realtime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) Opinion(userid=self.us,topicid=self.bbs,opinion=req["content"],time=realtime,state='NORMAL',complaint=0).save() self.update_topic({"realtime":realtime}) usid = req['userid'] if not self.au==self.us: dao = userDao({'userid':usid}) dao.update_point_byReq({'method':'+','points':1}) dao.save_update() num = Opinion.objects.filter(Q(topicid=self.bbs), ~Q(userid=self.au)).count() if not num%5: dao = userDao({'userid':self.bbs.userid.id}) dao.update_point_byReq({'method':'+','points':num/5}) dao.save_update() return True return False
def insert_a_topic(self,req): date_from = datetime.date.today() date_to = date_from + datetime.timedelta(days=1) if Topic.objects.filter(userid=self.us,time__range=[date_from, date_to]).count() < 5: realtime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) Topic(userid=self.us,name=req["name"],content=req["content"],time=realtime,replytime=0,modifytime=realtime,state='NORMAL',complaint=0).save() dao = userDao({'us': self.us}) dao.update_point_byReq({'method': '+', 'points': '1'}) dao.save_update() return True return False
def contribute(req): if req.method == "POST" and req.COOKIES.has_key("userid"): jsonReq = simplejson.loads(req.body) dao = updateEXDao(ex=jsonReq["titleid"]) dao.update_exercise_points() dao.update_ex_save() dao = userDao({"userid": jsonReq["authorid"]}) dao.update_point_byReq({"method": "+", "points": 1}) dao.save_update() return HttpResponse(json.dumps({"tips": "点赞成功"}), content_type="application/json") return HttpResponse(json.dumps({"tips": "点赞失败"}), content_type="application/json")
def download_resources(req): if req.COOKIES.has_key('userid'): resourceID = int(req.GET.get('rs')) downloader = req.COOKIES['userid'] dao = Source.objects.get(id=resourceID) downloadPoint = dao.points uploader = dao.userid # downloadPoint = int(req.POST["points"]) # uploader = int(req.POST["uploader"]) # resourceID = int(req.POST["resourceID"]) if User.objects.filter(id=downloader,points__gte=downloadPoint): dao = userDao({'userid':downloader}) dao.update_point_byReq({'method':'-','points':downloadPoint}) dao.save_update() dao = userDao({'us':uploader}) dao.update_point_byReq({'method':'+','points':downloadPoint}) dao.save_update() dao = rsUpdateDao(rsid=resourceID) count = dao.update_content() dao.update_save() content = (' 下载资源: ').decode("utf-8") + dao.rs.download downloadPath = settings.MEDIA_ROOT+dao.rs.download ADao = activityDao({"userid":downloader}) ADao.add_a_activity(content) def file_iterator(file_name, chunk_size=512): with open(file_name) as f: while True: c = f.read(chunk_size) if c: yield c else: break response = StreamingHttpResponse(file_iterator(downloadPath)) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="{0}"'.format(dao.rs.download) #默认文件名 return response # return HttpResponse(json.dumps({'resourceID':resourceID,"count":count,'dURL':downloadURL}),content_type="application/json") return HttpResponse('积分不足') return HttpResponse('请先登录')
def insert_a_complaint(self,req,method): if self.ex: n = Complaint.objects.filter(titleid=self.ex,state='NORMAL').count() if n<5: Complaint(titleid=self.ex, content=req['content'],userid=self.us, state='NORMAL').save() from exercise.dao import updateEXDao dao = updateEXDao() if dao.update_exercise_complaint( method='+',ex=self.ex)==5: dao.update_exercise_state('ACTIVE', self.ex) dao.update_ex_save() return None elif self.au: n = Complaint.objects.filter( authorid=self.au,state='NORMAL').count() if n<10: Complaint(authorid=self.au, content=req['content'],userid=self.us, state='NORMAL').save() dao = userDao({'us':self.au}) if dao.update_complaint('+')==10: dao.update_state('ACTIVE') dao.save_update() return None elif self.tp: n = Complaint.objects.filter( topicid=self.tp,state='NORMAL').count() if n<10: Complaint(topicid=self.tp, content=req['content'],userid=self.us, state='NORMAL').save() from bbs.dao import BBSDao dao = BBSDao({'bbs':self.tp}) if dao.update_Tcomplaint(method)==10: dao.update_Tstate('ACTIVE') dao.update_Tsave() return None elif self.op: n = Complaint.objects.filter(opinionid=self.op,state='NORMAL').count() if n<5: Complaint(opinionid=self.op, content=req['content'],userid=self.us, state='NORMAL').save() from bbs.dao import OpinDao dao = OpinDao({'op':self.op}) if dao.update_Ocomplaint('+')==5: dao.update_state('ACTIVE') dao.update_save() return None elif self.rs: n = Complaint.objects.filter(resourceid=self.rs,state='NORMAL').count() if n<10: Complaint(resourceid=self.rs, content=req['content'],userid=self.us, state='NORMAL').save() dao = rsUpdateDao(self.rs) if dao.update_complaint('+')==10: dao.update_state('ACTIVE') dao.update_save() return None return 'wrong request'
def reset_ps(req): if req.method == 'POST': jsonReq = simplejson.loads(req.body) oldps = jsonReq['oldps'] newps = jsonReq['newps'] userid = req.COOKIES["userid"] if User.objects.filter(id = userid, password = oldps): dao = userDao({'userid':userid}) us = dao.us if us.state == 'NORMAL': dao.update_ps(newps) dao.save_update() return HttpResponse(json.dumps({"error":"更改密码成功"}),content_type='application/json') return HttpResponse(json.dumps({"error":"请输入正确输入新旧密码,并保证账号状态正常"}),content_type="application/json")
def reset(req): if req.method == 'POST': jsonReq = simplejson.loads(req.body) usere = jsonReq['email'] if User.objects.filter(email=usere): dao = userDao({'email':usere}) us = dao.us if us.state == 'NORMAL': unameDeadline = mail_control({'method':'regist','username':us.username.encode('utf-8'),'email':usere}) dao.update_flag(unameDeadline) dao.update_ps(jsonReq['password']) dao.update_state('ACTIVE') dao.save_update() return HttpResponse(json.dumps({}),content_type='application/json') return HttpResponse(json.dumps({'error':'请输入正确的已激活邮箱'}),content_type="application/json")
def active(req): req.encoding='gb2312' deadline = int(req.GET.get('t')) flag = req.GET.get('un').encode('utf-8') name = req.GET.get('name').encode('utf-8') now = int(time_control({'active':'active'})) if now <= deadline: dao = userDao({'username':name}) if dao.us and dao.us.state=='ACTIVE': # if check_password(name+str(deadline), dao.us.flag): if flag == dao.us.flag.encode('utf-8'): dao.update_state('NORMAL') dao.save_update() return render_to_response('login.html',{'tips':'激活成功!'},context_instance=RequestContext(req)) else: unameDeadline = mail_control({'method':'regist','username':name,'email':dao.us.email}) dao.update_flag(unameDeadline) dao.save_update() return render_to_response('active.html',{'tips':'链接失效,已重新发送激活邮件!!'},context_instance=RequestContext(req))
def check_answer(req): if req.method == "POST" and req.COOKIES.has_key("userid"): jsonReq = simplejson.loads(req.body) titleId = jsonReq["id"] titleAs = jsonReq["answer"] usid = req.COOKIES["userid"] if titleAs: isTitle = Exercise.objects.filter(id=titleId, answer=titleAs) if isTitle: dao = userDao({"userid": usid}) dao.update_point_byReq({"method": "+", "points": 1}) dao.save_update() rsp = read_a_title(req=jsonReq["num"], userid=usid) return HttpResponse(json.dumps(rsp), content_type="application/json") rsp = {"exerciseid": titleId, "userid": usid} CDao = collectionDao(rsp) if not CDao.select_collection_byExUs(): CDao.insert_collection() return HttpResponse(json.dumps({"tips": get_tips_byId(titleId)}), content_type="application/json") return HttpResponse(json.dumps({"tips": "请输入正确的答案"}), content_type="application/json")
def add_a_opinion(req,param): if req.method == "POST" and req.COOKIES.has_key('userid'): content = req.POST["content"] auTp = int(req.POST["auTp"]) #发布话题的作者 au = int(req.POST["au"]) #用户quote op = req.POST["op"] ph = req.POST["ph"] userid = req.COOKIES["userid"] dlen = len(content) if dlen<10 or dlen>10000: return HttpResponse(json.dumps({"tips":"请正确输入意见,长度∈[10,10000]"}),content_type="application/json") else: dao = BBSDao({"userid":userid,"id":int(param),'au':auTp}) if dao.insert_a_opinion({"content":content,"userid":userid}): if au and op and ph: regLIST = "<b>"+('引用').decode("utf-8")+"<a href='"+op+"'>"+ph+"</a>"+("的意见").decode("utf-8")+"</b>" if re.match(regLIST,content): dao = userDao({'userid':int(au)}) dao.update_point_byReq({'method':"+",'points':1}) dao.save_update() return HttpResponse(json.dumps({}),content_type="application/json") return HttpResponse(json.dumps({"tips":"登录用户每min只可发布一条意见"}),content_type="application/json")
def list(req): # @ReservedAssignment id = req.COOKIES["userid"] # @ReservedAssignment dao = userDao({'userid':id}) rsp = dao.select_user() return HttpResponse(json.dumps(rsp),content_type="application/json")