Exemple #1
0
 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()
Exemple #2
0
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")
Exemple #3
0
 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
Exemple #4
0
 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
Exemple #5
0
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")
Exemple #6
0
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('请先登录')
Exemple #7
0
 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'        
Exemple #8
0
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")
Exemple #9
0
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")
Exemple #10
0
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))
Exemple #11
0
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")
Exemple #12
0
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")

        
Exemple #13
0
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")