Пример #1
0
def cidhome(CID_C):
    try:
        res = []
        sum = dataforum.query(FORUM).filter(FORUM.FID != "0000").count()

        for i in range(1, sum + 1):
            help = dataforum.query(FORUM).filter(FORUM.FID == str(i)).first()
            moid = help.MOID
            temp = dataforum.query(MODULE).filter(MODULE.MOID == moid).first()
            Author = dataforum.query(CUSTOMER).filter(
                CUSTOMER.CID == help.CID).first()
            mona = temp.MOname
            temp_res = {}
            temp_res["FID"] = help.FID  #论贴的ID
            temp_res["Finf"] = help.Finf  #论贴的内容
            temp_res["CID"] = help.CID  #论贴传作者的ID
            temp_res["good"] = str(help.good)  #点赞的数目
            temp_res["module_name"] = mona  #论贴所属的模块名字
            temp_res["title"] = help.title  #论贴的标题
            temp_res["module_id"] = help.MOID  #论贴的模块ID
            temp_res["author"] = Author.Cname  #创建论贴的用户名字

            res.append(temp_res)

        return jsonwrap(0, "success.", res)
    except Exception as e:
        error = {}
        return jsonwrap(10, "error", error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #2
0
def myrank(SID):
    try:
        answer = []
        res = {}
        thissession = dataforum.query(SESSION).filter(
            SESSION.sid == SID).first()
        if (thissession == None):
            dataforum.close()
            return jsonwrap(2, "Pelease Login again222222.", res)
        CNAME = thissession.Cname
        CID_C = dataforum.query(CUSTOMER).filter(
            CUSTOMER.Cname == CNAME).first().CID
        personq = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == CID_C).all()
        if ((len(personq) == 0)):
            dataforum.close()
            return jsonwrap(1, "Pelease check again11111.", res)
        person = dataforum.query(CUSTOMER).filter(
            CUSTOMER.CID == CID_C).first()
        cname = person.Cname

        res['rank'] = str(int(person.crank))  #用户的级别

        return jsonwrap(0, "success.", res)
    except Exception as e:
        error = {}
        return jsonwrap(10, "error", error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #3
0
def forum_show(MOID_M):
    try:
        res=[]
        forums=dataforum.query(FORUM).filter(FORUM.MOID==MOID_M).all()
        Len = len(forums)
        tmp={"total":Len,"MOID":MOID_M}
        res.append(tmp)
        forums=sorted(forums,key=cmp_to_key(cmpp),reverse=1)
        flag=0
        allforums=[]
        for i in range(Len-1,-1,-1):
            if(flag==3):
                break
            forum=forums[i]
            thread = {"ID": forum.FID, "title":forum.title,"date":time_change(forum.date)}
            allforums.append(thread)
            flag=flag+1
        dataforum.close()
        res.append(allforums)
        return jsonwrap(0,"success",res)
    except Exception as e:
        error = {}
        return jsonwrap(10,"error",error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #4
0
def mycomment(SID):
    try:
        res = []
        thissession = dataforum.query(SESSION).filter(
            SESSION.sid == SID).first()
        if (thissession == None):
            dataforum.close()
            return jsonwrap(2, "Pelease Login again.", res)
        CNAME = thissession.Cname
        CID_C = dataforum.query(CUSTOMER).filter(
            CUSTOMER.Cname == CNAME).first().CID

        ansp = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == CID_C).all()
        if ((len(ansp) == 0)):
            dataforum.close()
            return jsonwrap(1, "Pelease check again.", res)

        ans = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == CID_C).first()
        cname = ans.Cname

        thisdt = thissession.dt
        nowdt = datetime.datetime.now()
        subdt = (nowdt - thisdt).seconds
        if (subdt > 3600):
            dataforum.delete(thissession)
            dataforum.commit()
            dataforum.close()
            return jsonwrap(3, "Pelease Login again.", res)
        thissession.dt = nowdt
        dataforum.commit()

        mod = dataforum.query(FORUM).filter(FORUM.CID == CID_C).first()

        allforum = dataforum.query(COMMENT).filter(COMMENT.CID == CID_C).all()

        Len = len(allforum)

        for i in range(Len):
            tempfroum = allforum[i]

            temp_post = dataforum.query(FORUM).filter(
                FORUM.FID == tempfroum.FID).first()
            temp_res = {}
            temp_res["information"] = tempfroum.COinf  #评论内容
            temp_res["title"] = temp_post.title  #论贴的标题
            temp_res["FID"] = temp_post.FID  #论贴的标题
            temp_res["date"] = time_change(tempfroum.date)  #评论创建的时间
            res.append(temp_res)

        dataforum.close()
        return jsonwrap(0, "success.", res)
    except Exception as e:
        error = {}
        return jsonwrap(10, "error", error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #5
0
def jsontest():
    user = request.args.get('nm')
    password = request.args.get('ps')
    res = {}
    res['YourName'] = user
    res['YourPassword'] = password
    res['YourUID'] = random.randint(50, 100)
    return jsonwrap(0, "ok", res)
Пример #6
0
def login():
    try:
        res = {}
        user = request.args.get('nm')
        password = request.args.get('ps')
        if (user == None or password == None or user == '' and password == ''):
            dataforum.close()
            return jsonwrap(8, "empty.", res)

        ans_p = dataforum.query(CUSTOMER).filter(
            CUSTOMER.Cname == user, CUSTOMER.passwd == password).all()

        res = {}
        if (len(ans_p) > 0):
            ans = dataforum.query(CUSTOMER).filter(
                CUSTOMER.Cname == user, CUSTOMER.passwd == password).first()
            userrank = ans.crank
            temp_ans = dataforum.query(SESSION).filter(
                SESSION.Cname == user).delete()
            if (temp_ans != None):
                dataforum.query(SESSION).filter(SESSION.Cname == user).delete()
                dataforum.commit()
            ranstr = generate_random_str()
            nowtime = time.strftime('%Y-%m-%d %H:%M:%S',
                                    time.localtime(time.time()))
            newsession = SESSION(sid=ranstr, Cname=user, dt=nowtime)

            dataforum.add(newsession)
            dataforum.commit()

            res['SID'] = ranstr
            res['Cname'] = user
            res['crank'] = str(int(userrank))
            dataforum.close()
            return jsonwrap(0, "login success.", res)

        else:
            dataforum.close()
            return jsonwrap(1, "Pelease check again.", res)
    except Exception as e:
        error = {}
        return jsonwrap(10, str(e), error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #7
0
def regist():
    try:
        res = {}
        user = request.args.get('nm')
        password = request.args.get('ps')
        if (user == None or password == None or user == '' or password == ''):
            dataforum.close()
            return jsonwrap(8, "empty.", res)

        if (dataforum.query(CUSTOMER).filter(CUSTOMER.Cname == user).all()
                or user == None):
            dataforum.close()
            return jsonwrap(1, "Username already exists.", res)

        #=====================================================================
        a = dataforum.query(func.count('*')).select_from(CUSTOMER).scalar()
        a = a + 1
        table_cid = str(a)
        image_location = "./" + table_cid
        newcustomer = CUSTOMER(CID=table_cid,
                               Cname=user,
                               passwd=password,
                               crank=1,
                               imagestr=image_location,
                               flag=1)
        dataforum.add(newcustomer)
        dataforum.commit()

        #===========================================================

        res['CID'] = table_cid  #用户ID
        res['Cname'] = user  #用户名字
        res['passwd'] = password  #用户密码
        res['crank'] = "1"  #用户级别
        res['imagestr'] = image_location  #照片路径
        dataforum.close()
        return jsonwrap(0, "ok", res)
    except Exception as e:
        error = {}
        return jsonwrap(10, "error", error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #8
0
def collect(SID, FID):
    try:
        res = {}
        thissession = dataforum.query(SESSION).filter(
            SESSION.sid == SID).first()
        if (thissession == None):
            dataforum.close()
            return jsonwrap(2, "Pelease Login again.", res)
        CNAME = thissession.Cname
        CID_C = dataforum.query(CUSTOMER).filter(
            CUSTOMER.Cname == CNAME).first().CID

        ansq = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == CID_C).all()
        if ((len(ansq) == 0)):
            dataforum.close()
            return jsonwrap(1, "Pelease check again.", res)

        ans = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == CID_C).first()
        cname = ans.Cname

        thisdt = thissession.dt
        nowdt = datetime.datetime.now()
        subdt = (nowdt - thisdt).seconds
        if (subdt > 3600):
            dataforum.delete(thissession)
            dataforum.commit()
            dataforum.close()
            return jsonwrap(3, "Pelease Login again.", res)

        thissession.dt = nowdt
        dataforum.commit()

        tmptest = dataforum.query(FORUM).filter(FORUM.FID == FID).first()
        if (tmptest == None):
            return jsonwrap(4, "该帖子不存在", res)
        test = dataforum.query(COLLECTION).filter(
            COLLECTION.Cname == cname, COLLECTION.FID == FID).first()
        if (test != None):
            return jsonwrap(5, "The forum has been collected", res)
        ast = dataforum.query(COLLECTION).filter(COLLECTION.ctid != 0).all()
        if (len(ast) == 0):
            a = 1
        else:
            a = ast[-1].ctid + 1
        newcollection = COLLECTION(ctid=a, Cname=cname, FID=FID)
        dataforum.add(newcollection)
        dataforum.commit()

        res['Cname'] = cname
        res['FID'] = FID  #论贴的ID
        dataforum.close()
        return jsonwrap(0, "success", res)
    except Exception as e:
        error = {}
        return jsonwrap(10, str(e), error)
Пример #9
0
def adminlogin():
    try:
        res = {}
        user = request.args.get('nm')
        password = request.args.get('ps')
        if (user == None):
            return jsonwrap(8, "empty", res)
        if (password == None):
            return jsonwrap(8, "empty", res)

        ans = dataforum.query(ADMINISTRATOR).filter(
            ADMINISTRATOR.Adname == user,
            ADMINISTRATOR.Adpasswd == password).all()

        res = {}
        if (len(ans) > 0):
            dataforum.query(SESSION).filter(SESSION.Cname == user).delete()
            ranstr = generate_random_str()
            nowtime = time.strftime('%Y-%m-%d %H:%M:%S',
                                    time.localtime(time.time()))
            newsession = SESSION(sid=ranstr, Cname=user, dt=nowtime)

            dataforum.add(newsession)
            dataforum.commit()
            dataforum.close()
            res['SID'] = ranstr
            res['Adname'] = user
            res['dt'] = nowtime
            return jsonwrap(0, "Administrator login success.", res)

        else:
            return jsonwrap(1, "Pelease check again.", res)
    except Exception as e:
        error = {}
        return jsonwrap(10, "error", error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #10
0
def adminban(CID_C, SID):
    try:
        res = {}
        ans = dataforum.query(ADMINISTRATOR).filter(
            ADMINISTRATOR.AdID == '0').all()
        if ((len(ans) == 0)):
            return jsonwrap(1, "Pelease check again.", res)

        #===========================================================================
        ans = dataforum.query(ADMINISTRATOR).filter(
            ADMINISTRATOR.AdID == '0').first()
        if (ans == None):
            return jsonwrap(1, "sid不存在", res)
        Aname = ans.Adname
        thissession = dataforum.query(SESSION).filter(
            SESSION.Cname == Aname, SESSION.sid == SID).first()
        if (thissession == None):
            return jsonwrap(2, "Pelease Login again", res)
        thisdt = thissession.dt
        nowdt = datetime.datetime.now()
        subdt = (nowdt - thisdt).seconds
        if (subdt > 3600):
            dataforum.delete(thissession)
            dataforum.commit()
            return jsonwrap(3, "Pelease Login again.", res)
        thissession.dt = nowdt
        dataforum.commit()

        user = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == CID_C).first()
        if (user.flag == 0):
            return jsonwrap(4, "The user has been banned", res)
        user.flag = 0
        nowbt = datetime.datetime.now()
        cname = user.Cname
        record = BAN(Cname=cname, bt=nowbt)
        dataforum.add(record)
        dataforum.commit()
        dataforum.close()

        res['CID'] = CID_C
        res['Cname'] = cname
        return jsonwrap(0, "ok", res)
    except Exception as e:
        error = {}
        return jsonwrap(10, "error", error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #11
0
def auto_remove_ban():
    try:
        records = dataforum.query(BAN).filter(BAN.Cname != None).all()
        Len = len(records)
        for i in range(0, Len):
            record = records[i]
            thisbt = record.bt
            nowbt = datetime.datetime.now()
            subdt = (nowbt - thisbt).days
            if (subdt >= 1):
                cname = record.Cname
                user = dataforum.query(CUSTOMER).filter(
                    CUSTOMER.Cname == cname).first()
                dataforum.query(BAN).filter(BAN.Cname == cname).delete()
                user.flag = 1
                dataforum.commit()
        dataforum.close()
    except Exception as e:
        error = {}
        return jsonwrap(10, "error", error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #12
0
def admindelete(FID,SID):
    try:
        res={}
        ans = dataforum.query(ADMINISTRATOR).filter(ADMINISTRATOR.AdID=='0').all()
        if ((len(ans)==0)):
            return jsonwrap(1, "Pelease check again.", res)

        #===========================================================================
        ans = dataforum.query(ADMINISTRATOR).filter(ADMINISTRATOR.AdID=='0').first()
        if(ans == None):
            return jsonwrap(1,"sid不存在",res)    
        Aname = ans.Adname
        thissession = dataforum.query(SESSION).filter(SESSION.Cname==Aname,SESSION.sid==SID).first()
        if  (thissession==None):
            return jsonwrap(2, "Pelease Login again", res)
        thisdt = thissession.dt
        nowdt = datetime.datetime.now()
        subdt = (nowdt - thisdt).seconds
        if(subdt>3600):
            dataforum.delete(thissession)
            dataforum.commit()
            return jsonwrap(3, "Pelease Login again.", res)
        thissession.dt = nowdt
        dataforum.commit()

        dataforum.query(COMMENT).filter(COMMENT.FID == FID).delete()
        dataforum.query(FORUM).filter(FORUM.FID == FID).delete()
        dataforum.commit()
        dataforum.close()

        res['FID'] = FID
        return jsonwrap(0, "ok", res)
    except Exception as e:
        error = {}
        return jsonwrap(10,"error",error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #13
0
def returncollection(SID):
    try:
        answer = []
        res = {}
        thissession = dataforum.query(SESSION).filter(
            SESSION.sid == SID).first()
        if (thissession == None):
            dataforum.close()
            return jsonwrap(2, "Pelease Login again.", res)
        CNAME = thissession.Cname
        CID_C = dataforum.query(CUSTOMER).filter(
            CUSTOMER.Cname == CNAME).first().CID

        ansp = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == CID_C).all()
        if ((len(ansp) == 0)):
            dataforum.close()
            return jsonwrap(1, "Pelease check again.", res)

        #===========================================================================
        ans = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == CID_C).first()
        cname = ans.Cname

        thisdt = thissession.dt
        nowdt = datetime.datetime.now()
        subdt = (nowdt - thisdt).seconds
        if (subdt > 3600):
            dataforum.delete(thissession)
            dataforum.commit()
            dataforum.close()
            return jsonwrap(3, "Pelease Login again.", res)
        thissession.dt = nowdt
        dataforum.commit()

        allforum = dataforum.query(COLLECTION).filter(
            COLLECTION.Cname == CNAME).all()
        Len = len(allforum)

        for i in range(0, Len):
            tempcus = allforum[i]
            tempfroum = dataforum.query(FORUM).filter(
                FORUM.FID == tempcus.FID).first()
            mod = dataforum.query(MODULE).filter(
                MODULE.MOID == tempfroum.MOID).first()
            thiscustomer = dataforum.query(CUSTOMER).filter(
                CUSTOMER.CID == tempfroum.CID).first()
            temp_people = dataforum.query(CUSTOMER).filter(
                CUSTOMER.CID == tempfroum.lastestUID).first()
            temp_res = {}
            temp_res["FID"] = tempfroum.FID  #论贴ID
            temp_res["Finf"] = tempfroum.Finf  #论贴内的信息
            temp_res["CID"] = tempfroum.CID  #论贴创建者的ID
            temp_res["good"] = str(tempfroum.good)  #点赞的数目
            temp_res["module_name"] = mod.MOname  #论贴所属板块的名称
            temp_res["module_id"] = mod.MOID  #论贴所属的板块ID
            temp_res["title"] = tempfroum.title  #论贴的标题
            temp_res["author"] = thiscustomer.Cname  #论贴的创建者的名字
            temp_res["views"] = tempfroum.views  #论贴的创建者的名字
            temp_res["cnumber"] = tempfroum.cnumber  #论贴被评价的次数
            temp_res["date"] = time_change(tempfroum.date)  #论贴创建的时间
            temp_res['lastestUID'] = tempfroum.lastestUID  #最后一次评论的用户ID
            temp_res['lastestTime'] = time_change(tempfroum.date)  #最后一次评论的时间
            temp_res['lastestname'] = thiscustomer.Cname  #最后一次评论的人名
            if (temp_people != None):  #判断是否存在评论
                temp_res['lastestUID'] = tempfroum.lastestUID  #最后一次评论的用户ID
                temp_res['lastestname'] = temp_people.Cname  #最后一次评论的人名
                temp_res['lastestTime'] = time_change(
                    tempfroum.lastestTime)  #最后一次评论的时间
            answer.append(temp_res)

        dataforum.close()
        return jsonwrap(0, "succes.", answer)
    except Exception as e:
        error = {}
        return jsonwrap(10, "error", error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #14
0
def admincreate(SID):
    try:
        res = {}
        ans = dataforum.query(ADMINISTRATOR).filter(
            ADMINISTRATOR.AdID == '0').all()
        if ((len(ans) == 0)):
            return jsonwrap(1, "Pelease check again.", res)
        note = request.args.get('note')
        title = request.args.get('title')
        if (note == None or title == None):
            return jsonwrap(4, "Pelease check again.", res)

        #===========================================================================
        ans = dataforum.query(ADMINISTRATOR).filter(
            ADMINISTRATOR.AdID == '0').first()
        if (ans == None):
            return jsonwrap(1, "sid不存在", res)
        Aname = ans.Adname
        thissession = dataforum.query(SESSION).filter(
            SESSION.Cname == Aname, SESSION.sid == SID).first()
        if (thissession == None):
            return jsonwrap(2, "Pelease Login again", res)
        thisdt = thissession.dt
        nowdt = datetime.datetime.now()
        subdt = (nowdt - thisdt).seconds
        if (subdt > 3600):
            dataforum.delete(thissession)
            dataforum.commit()
            return jsonwrap(3, "Pelease Login again.", res)
        thissession.dt = nowdt
        dataforum.commit()

        ast = dataforum.query(FORUM).all()
        a = return_int(ast[-1].FID) + 1
        Forum_cid = str(a)
        newone = FORUM(FID=str(Forum_cid),
                       Finf=note,
                       good=0,
                       CID='0',
                       Frank=1,
                       MOID=5,
                       title=title,
                       cnumber=0,
                       date=nowdt,
                       views=0,
                       lastestUID="0",
                       lastestTime=nowdt)
        dataforum.add(newone)
        dataforum.commit()
        dataforum.close()

        res['FID'] = Forum_cid
        res['Finf'] = note
        res['good'] = "0"
        res['AdID'] = '0'
        res['Adname'] = 'root'
        res['Frank'] = "1"
        res['MOID'] = "5"
        res['Title'] = title
        res['date'] = time_change(nowdt)
        return jsonwrap(0, "ok", res)
    except Exception as e:
        error = {}
        return jsonwrap(10, "error", error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #15
0
def create(CID_C, SID):
    try:
        res = {}
        ans = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == CID_C).all()
        if ((len(ans) == 0)):
            return jsonwrap(1, "Pelease check again.", res)
        note = request.args.get('note')  #论贴信息
        title = request.args.get('title')  #论贴级别
        temprank = request.args.get('rank')  #
        rank = return_int(temprank)
        if (note == None):
            return jsonwrap(2, "Pelease check again.", res)

        #===========================================================================
        ans = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == CID_C).first()
        cname = ans.Cname
        thissession = dataforum.query(SESSION).filter(
            SESSION.Cname == cname, SESSION.sid == SID).first()
        if (thissession == None):
            return jsonwrap(3, "Pelease Login again.", res)
        thisdt = thissession.dt
        nowdt = datetime.datetime.now()
        subdt = (nowdt - thisdt).seconds
        if (subdt > 3600):
            dataforum.delete(thissession)
            return jsonwrap(4, "Pelease Login again.", res)
        if (ans.flag == 0):
            return (5, "You have been limited.", res)
        if (ans.crank < rank):
            return (6, "rank wrong", res)

        newstr = generate_random_str()
        thissession.sid = newstr
        thissession.dt = nowdt
        dataforum.commit()

        a = dataforum.query(func.count('*')).select_from(FORUM).scalar()
        a = a + 1
        Forum_cid = str(a)
        newone = FORUM(FID=str(Forum_cid),
                       Finf=note,
                       good=0,
                       CID=CID_C,
                       Frank=1,
                       MOID=0,
                       title=title,
                       cnumber=0,
                       date=nowdt)
        dataforum.add(newone)
        dataforum.commit()
        ans.crank = ans.crank + 0.1
        dataforum.commit()

        res['FID'] = Forum_cid  #论贴的ID
        res['Finf'] = note  #论贴的内容
        res['good'] = "0"  #论贴的点赞数量
        res['CID'] = CID_C  #创建论贴的用户ID
        res['Frank'] = temprank  #论贴的级别
        res["MOID"] = "0"  #论贴所属的模块ID
        res['SID'] = newstr  #更新SID
        res['Crank'] = str(int(ans.crank))  #创建论贴的用户级别
        res['title'] = title  #论贴的标题
        res['cname'] = ans.Cname  #创建论贴的用户ID
        res['cnumber'] = "0"  #论贴的评论数目
        res['date'] = time_change(nowdt)  #论贴的创建时间
        dataforum.close()

        return jsonwrap(0, "ok", res)
    except Exception as e:
        error = {}
        return jsonwrap(10, "error", error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #16
0
def good(SID, FID):
    try:
        res = {}
        thissession = dataforum.query(SESSION).filter(
            SESSION.sid == SID).first()
        if (thissession == None):
            dataforum.close()
            return jsonwrap(2, "Pelease Login again.", res)
        CNAME = thissession.Cname
        CID_C = dataforum.query(CUSTOMER).filter(
            CUSTOMER.Cname == CNAME).first().CID

        ansq = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == CID_C).all()
        if ((len(ansq) == 0)):
            dataforum.close()
            return jsonwrap(1, "Pelease check again.", res)

        ans = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == CID_C).first()
        cname = ans.Cname

        thisdt = thissession.dt
        nowdt = datetime.datetime.now()
        subdt = (nowdt - thisdt).seconds
        if (subdt > 3600):
            dataforum.delete(thissession)
            dataforum.commit()
            dataforum.close()
            return jsonwrap(3, "Pelease Login again.", res)

        thissession.dt = nowdt
        dataforum.commit()

        #thiscu =  dataforum.query(CUSTOMER).filter(CUSTOMER.CID==CID_C).first()
        #thisna = thiscu.Cname

        thisforum = dataforum.query(FORUM).filter(FORUM.FID == FID).first()

        ans2 = dataforum.query(CUSTOMER).filter(
            CUSTOMER.CID == thisforum.CID).first()
        a = thisforum.good
        thisforum.good = thisforum.good + 1
        dataforum.commit()
        ans2.crank = ans2.crank + 0.5
        dataforum.commit()

        res['FID'] = thisforum.FID  #论贴的ID
        res['Finf'] = thisforum.Finf  #论贴的内容
        res['good'] = str(thisforum.good)  #论贴的点赞数
        res['CID'] = thisforum.CID  #创建论贴的用户ID
        res['Frank'] = str(int(thisforum.Frank))  #论贴的级别
        res["module_id"] = thisforum.MOID  #论贴的模块ID
        res['crank'] = ans.crank  #用户的级别

        dataforum.close()
        return jsonwrap(0, "success", res)
    except Exception as e:
        error = {}
        return jsonwrap(10, "error", error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #17
0
def search(SID):
    try:
        res = []
        tmp = dataforum.query(SESSION).filter(SESSION.sid == SID).first()
        if (tmp == None):
            res = {'sid': SID}
            return jsonwrap(1, "sid不存在", res)
        tmpname = tmp.Cname
        ans = dataforum.query(CUSTOMER).filter(CUSTOMER.Cname == tmpname).all()
        if ((len(ans) == 0)):
            return jsonwrap(1, "Pelease check again.", res)

        #===========================================================================
        ans = dataforum.query(CUSTOMER).filter(
            CUSTOMER.Cname == tmpname).first()
        cname = ans.Cname
        thissession = dataforum.query(SESSION).filter(
            SESSION.Cname == cname, SESSION.sid == SID).first()
        if (thissession == None):
            return jsonwrap(2, "Pelease Login again.", res)
        thisdt = thissession.dt
        nowdt = datetime.datetime.now()
        subdt = (nowdt - thisdt).seconds
        if (subdt > 3600):
            dataforum.delete(thissession)
            dataforum.commit()
            return jsonwrap(3, "Pelease Login again.", res)
        thissession.dt = nowdt
        dataforum.commit()

        content = request.args.get('con')
        if (content == None):
            return jsonwrap(8, "empty", res)
        forums = dataforum.query(FORUM).filter(
            FORUM.Finf.like("%" + content + "%")
            | FORUM.title.like("%" + content + "%")).all()
        Len = len(forums)
        msg = {"Cname": cname}
        res.append(msg)
        inf = []
        for i in range(0, Len):
            forum = forums[i]
            tmpcid = forum.CID
            tmpcustomer = dataforum.query(CUSTOMER).filter(
                CUSTOMER.CID == tmpcid).first()
            if (tmpcustomer == None):
                return jsonwrap(8, "empty", res)
            lastestID = forum.lastestUID
            lastcustomer = dataforum.query(CUSTOMER).filter(
                CUSTOMER.CID == lastestID).first()
            if (lastcustomer == None):
                thread = {
                    "ID": forum.FID,
                    "info": forum.Finf,
                    "likeCnt": forum.good,
                    "time": time_change(forum.date),
                    "MOID": forum.MOID,
                    "title": forum.title,
                    "commentnumber": forum.cnumber,
                    "author": tmpcustomer.Cname,
                    "views": forum.views,
                    "lastestname": tmpcustomer.Cname,
                    "lastestTime": time_change(forum.date),
                }
            else:
                thread = {
                    "ID": forum.FID,
                    "info": forum.Finf,
                    "likeCnt": forum.good,
                    "time": time_change(forum.date),
                    "MOID": forum.MOID,
                    "title": forum.title,
                    "commentnumber": forum.cnumber,
                    "lastestname": lastcustomer.Cname,
                    "lastestTime": time_change(forum.lastestTime),
                    "author": tmpcustomer.Cname,
                    "views": forum.views
                }
            inf.append(thread)
        res.append(inf)
        dataforum.close()
        return jsonwrap(0, "ok", res)
    except Exception as e:
        error = {}
        dataforum.commit()
        return jsonwrap(10, "error", error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #18
0
def browsefo(SID, FID):
    try:
        answer = []
        res = {}
        thissession = dataforum.query(SESSION).filter(
            SESSION.sid == SID).first()
        if (thissession == None):
            dataforum.close()
            return jsonwrap(2, "Pelease Login again.", res)
        CNAME = thissession.Cname
        CID_C = dataforum.query(CUSTOMER).filter(
            CUSTOMER.Cname == CNAME).first().CID
        ansq = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == CID_C).all()
        if ((len(ansq) == 0)):
            dataforum.close()
            return jsonwrap(1, "Pelease check again.", res)

        #===========================================================================
        ans = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == CID_C).first()
        cname = ans.Cname

        thisdt = thissession.dt
        nowdt = datetime.datetime.now()
        subdt = (nowdt - thisdt).seconds
        if (subdt > 3600):
            dataforum.delete(thissession)
            dataforum.commit()
            dataforum.close()
            return jsonwrap(3, "Pelease Login again.", res)
        thissession.dt = nowdt
        dataforum.commit()

        thisfo = dataforum.query(FORUM).filter(FORUM.FID == FID).first()
        if (ans.crank < thisfo.Frank):
            dataforum.close()
            return jsonwrap(
                4, "您的等级不足,阅读此贴需要等级达到" + str(thisfo.Frank) + ",您的当前等级为" +
                str(int(ans.crank)), res)

        review = []
        allcomment = dataforum.query(COMMENT).filter(COMMENT.FID == FID).all()
        Len = len(allcomment)
        for i in range(Len):
            comment_man = dataforum.query(CUSTOMER).filter(
                CUSTOMER.CID == allcomment[i].CID).first()
            temp_res = {}
            temp_res['COID'] = allcomment[i].COID  #评论ID
            temp_res['Coinf'] = allcomment[i].COinf  #评论信息
            temp_res['comment_man_name'] = comment_man.Cname  #评论者的名字
            temp_res['comment_man_ID'] = comment_man.CID  #评论者的ID
            temp_res['comment_date'] = time_change(allcomment[i].date)  #评论的时间
            review.append(temp_res)

        Author = dataforum.query(CUSTOMER).filter(
            CUSTOMER.CID == thisfo.CID).first()
        mod = dataforum.query(MODULE).filter(
            MODULE.MOID == thisfo.MOID).first()

        thisfo.views = thisfo.views + 1
        dataforum.commit()
        temp_people = dataforum.query(CUSTOMER).filter(
            CUSTOMER.CID == thisfo.lastestUID).first()
        res['FID'] = thisfo.FID  #论贴ID
        res['Finf'] = thisfo.Finf  #论贴内容
        res['good'] = str(thisfo.good)  #点赞数量
        res['CID'] = thisfo.CID  #创建论贴的用户ID
        res['Frank'] = str(thisfo.Frank)  #该论贴的级别
        res["module_id"] = str(thisfo.MOID)  #该论贴的所属模块ID
        res["title"] = thisfo.title  #论贴标题
        res['author'] = Author.Cname  #论贴的作者名字
        res['module_name'] = mod.MOname  #论贴所属的模块名字
        res['date'] = time_change(thisfo.date)  #论贴的创建时间
        res['views'] = thisfo.views  #论贴的浏览次数
        res['lastestUID'] = thisfo.lastestUID  #最后一次评论的用户ID
        res['lastestTime'] = time_change(thisfo.date)  #最后一次评论的时间
        res['lastestname'] = Author.Cname  #最后一次评论的人名
        if (temp_people != None):  #判断是否存在评论
            res['lastestUID'] = thisfo.lastestUID  #最后一次评论的用户ID
            res['lastestname'] = temp_people.Cname  #最后一次评论的人名
            res['lastestTime'] = time_change(thisfo.lastestTime)  #最后一次评论的时间

        answer.append(res)
        answer.append(review)
        dataforum.close()
        return jsonwrap(0, "success", answer)
    except Exception as e:
        error = {}
        return jsonwrap(10, "error", error)
Пример #19
0
def test_array():
    return jsonwrap(0, "ok", res)
Пример #20
0
def customer_show(SID):
    try:
        res = []
        ans = dataforum.query(ADMINISTRATOR).filter(
            ADMINISTRATOR.AdID == '0').all()
        if ((len(ans) == 0)):
            return jsonwrap(1, "Pelease check again.", res)

        #===========================================================================
        ans = dataforum.query(ADMINISTRATOR).filter(
            ADMINISTRATOR.AdID == '0').first()
        if (ans == None):
            return jsonwrap(1, "sid不存在", res)
        Aname = ans.Adname
        thissession = dataforum.query(SESSION).filter(
            SESSION.Cname == "root", SESSION.sid == SID).first()
        if (thissession == None):
            return jsonwrap(2, "Pelease Login again", res)
        thisdt = thissession.dt
        nowdt = datetime.datetime.now()
        subdt = (nowdt - thisdt).seconds
        if (subdt > 3600):
            dataforum.delete(thissession)
            dataforum.commit()
            return jsonwrap(3, "Pelease Login again.", res)
        thissession.dt = nowdt
        dataforum.commit()

        not_ban_customer = dataforum.query(CUSTOMER).filter(
            CUSTOMER.CID != '0', CUSTOMER.flag == 1).all()
        not_ban = []
        ban = []
        Len = len(not_ban_customer)
        for i in range(0, Len):
            customer = not_ban_customer[i]
            thread = {
                "ID": customer.CID,
                "Cname": customer.Cname,
                "rank": customer.crank,
                "flag": customer.flag,
                "lastTime": time_change(thisdt)
            }
            not_ban.append(thread)
        ban_customer = dataforum.query(CUSTOMER).filter(
            CUSTOMER.CID != '0', CUSTOMER.flag == 0).all()
        Len = len(ban_customer)
        for i in range(0, Len):
            customer = ban_customer[i]
            thread = {
                "ID": customer.CID,
                "Cname": customer.Cname,
                "rank": customer.crank,
                "flag": customer.flag,
                "lastTime": time_change(thisdt)
            }
            ban.append(thread)
        res.append(not_ban)
        res.append(ban)
        return jsonwrap(0, "ok", res)
    except Exception as e:
        error = {}
        return jsonwrap(10, "error", error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #21
0
def customerhome(SID):
    try:
        answer = []
        res = {}
        thissession = dataforum.query(SESSION).filter(
            SESSION.sid == SID).first()
        if (thissession == None):
            dataforum.close()
            return jsonwrap(2, "Pelease Login again.", res)
        CNAME = thissession.Cname
        CID_C = dataforum.query(CUSTOMER).filter(
            CUSTOMER.Cname == CNAME).first().CID
        personq = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == CID_C).all()
        if ((len(personq) == 0)):
            dataforum.close()
            return jsonwrap(1, "Pelease check again.", res)
        person = dataforum.query(CUSTOMER).filter(
            CUSTOMER.CID == CID_C).first()
        cname = person.Cname

        thisdt = thissession.dt
        nowdt = datetime.datetime.now()
        subdt = (nowdt - thisdt).seconds
        if (subdt > 3600):
            dataforum.delete(thissession)
            dataforum.commit()
            dataforum.close()
            return jsonwrap(3, "Pelease Login again.", res)

        thissession.dt = nowdt
        dataforum.commit()

        res['cname'] = person.Cname  #用户的姓名
        res['password'] = person.passwd  #用户的密码
        res['rank'] = str(int(person.crank))  #用户的级别

        allforum = dataforum.query(FORUM).filter(FORUM.CID == person.CID).all()

        Len = len(allforum)
        if (Len == 0):
            answer.append(res)
            dataforum.close()
            return jsonwrap(0, "success.", answer)

        post = []
        for i in range(0, Len):
            tempfroum = allforum[i]
            temp = dataforum.query(MODULE).filter(
                MODULE.MOID == tempfroum.MOID).first()
            temp_people = dataforum.query(CUSTOMER).filter(
                CUSTOMER.CID == tempfroum.lastestUID).first()
            mona = temp.MOname
            temp_res = {}
            temp_res["FID"] = tempfroum.FID  #论贴的ID
            temp_res["Finf"] = tempfroum.Finf  #论贴的内容
            temp_res["Fgood"] = str(tempfroum.good)  #论贴的点赞数目
            temp_res["module_name"] = mona  #论贴所属的板块名称
            temp_res["title"] = tempfroum.title  #论贴的标题
            temp_res["cnumber"] = tempfroum.cnumber  #论贴的评论数目
            temp_res["date"] = time_change(tempfroum.date)  #论贴发布的日期
            temp_res["create_time"] = tempfroum.date  #论贴创建的时间
            temp_res["views"] = tempfroum.views  #论贴浏览的次数
            temp_res['lastestUID'] = tempfroum.lastestUID  #最后一次评论的用户ID
            temp_res['lastestTime'] = time_change(tempfroum.date)  #最后一次评论的时间
            temp_res['lastestname'] = person.Cname  #最后一次评论的人名
            if (temp_people != None):  #判断是否存在评论
                temp_res['lastestUID'] = tempfroum.lastestUID  #最后一次评论的用户ID
                temp_res['lastestname'] = temp_people.Cname  #最后一次评论的人名
                temp_res['lastestTime'] = time_change(
                    tempfroum.lastestTime)  #最后一次评论的时间

            post.append(temp_res)

        answer.append(res)
        answer.append(post)
        dataforum.close()
        return jsonwrap(0, "success.", answer)
    except Exception as e:
        error = {}
        return jsonwrap(10, "error", error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #22
0
def home(SID):
    try:
        res=[]

        thissession = dataforum.query(SESSION).filter(SESSION.sid==SID).first()
        if (thissession==None):
            dataforum.close()
            return jsonwrap(2, "Pelease Login again.", res)
        CNAME = thissession.Cname
        CID_C = dataforum.query(CUSTOMER).filter(CUSTOMER.Cname==CNAME).first().CID
        
        ansp = dataforum.query(CUSTOMER).filter(CUSTOMER.CID==CID_C).all()
        if ((len(ansp)==0)):
            dataforum.close()
            return jsonwrap(1, "Pelease check again.", res)

        #===========================================================================
        ans = dataforum.query(CUSTOMER).filter(CUSTOMER.CID==CID_C).first()
        cname = ans.Cname

        thisdt = thissession.dt
        nowdt = datetime.datetime.now()
        subdt = (nowdt - thisdt).seconds
        if(subdt>3600):
            dataforum.delete(thissession)
            dataforum.commit()
            dataforum.close()
            return jsonwrap(3, "Pelease Login again.", res)
        thissession.dt = nowdt
        dataforum.commit()


        sum = dataforum.query(FORUM).filter(FORUM.FID != "0000").count()
        allforum = dataforum.query(FORUM).filter(FORUM.FID != "0000").all()
        if (sum==0):
            return jsonwrap(8, "empty.", res)
        for i in range (0,sum):
            help = allforum[i]

            moid = help.MOID
            temp = dataforum.query(MODULE).filter(MODULE.MOID == moid).first()
            Author = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == help.CID).first()
            mona = temp.MOname
            temp_res = {}
            
            temp_res["module_name"] = mona                          #论贴所属的板块名称
            temp_res["module_id"] = temp.MOID                       #论贴所属的板块ID                
            temp_res["title"] = help.title                          #论贴的标题
            temp_res["FID"] = help.FID                              #论贴的标题
            temp_res["date"] = time_change(help.date)               #论贴发布的日期
            
            
            res.append(temp_res)
        dataforum.close()
        return jsonwrap(0, "success.", res)
    except Exception as e:
        error = {}
        return jsonwrap(10,"error",error)
    finally:
        dataforum.commit()
        dataforum.close()
Пример #23
0
def comment(SID, FID):
    try:
        res = {}
        thissession = dataforum.query(SESSION).filter(
            SESSION.sid == SID).first()
        if (thissession == None):
            dataforum.close()
            return jsonwrap(2, "Pelease Login again.", res)
        CNAME = thissession.Cname
        CID_C = dataforum.query(CUSTOMER).filter(
            CUSTOMER.Cname == CNAME).first().CID
        person = dataforum.query(CUSTOMER).filter(CUSTOMER.CID == CID_C).all()
        note = request.args.get('comment')
        if (note == '' or note == None):
            dataforum.close()
            return jsonwrap(8, "empty.", res)
        if ((len(person) == 0)):
            dataforum.close()
            return jsonwrap(1, "Pelease check again.", res)

        person = dataforum.query(CUSTOMER).filter(
            CUSTOMER.CID == CID_C).first()
        cname = person.Cname

        thisdt = thissession.dt
        nowdt = datetime.datetime.now()
        subdt = (nowdt - thisdt).seconds
        if (subdt > 3600):
            dataforum.delete(thissession)
            dataforum.commit()
            dataforum.close()
            return jsonwrap(3, "Pelease Login again.", res)
        thissession.dt = nowdt
        dataforum.commit()
        if (person.flag == 0):
            dataforum.close()
            return jsonwrap(4, "You are not allow to post.", res)

        ast = dataforum.query(COMMENT).all()
        sum = 1
        ast_sum = len(ast)
        if (ast == None):
            a = 1
        else:
            for i in range(ast_sum):
                if (sum <= return_int(ast[i].COID)):
                    sum = return_int(ast[i].COID) + 1

        newcomment = COMMENT(COID=str(sum),
                             COinf=note,
                             FID=FID,
                             CID=CID_C,
                             date=nowdt)
        dataforum.add(newcomment)
        dataforum.commit()
        person.crank = person.crank + 0.5
        dataforum.commit()

        thisfo = dataforum.query(FORUM).filter(FORUM.FID == FID).first()
        thismo = dataforum.query(MODULE).filter(
            MODULE.MOID == thisfo.MOID).first()
        thisfo.cnumber = thisfo.cnumber + 1
        thisfo.lastestUID = CID_C
        thisfo.lastestTime = nowdt
        dataforum.commit()

        res['COID'] = str(sum)  #评论的ID
        res['COinf'] = note  #评论的信息
        res['FID'] = FID  #评论的论贴ID
        res['CID'] = CID_C  #评论者的ID
        res['Crank'] = str(int(person.crank))  #用户级别
        res['Finf'] = thisfo.Finf  #论贴信息
        res['good'] = thisfo.good  #论贴点赞数量
        res['title'] = thisfo.title  #论贴标题
        res['Frank'] = thisfo.Frank  #论贴级别
        res['MOID'] = thismo.MOname  #论贴所属模块的名字

        dataforum.close()
        return jsonwrap(0, "success", res)
    except Exception as e:
        error = {}
        return jsonwrap(10, str(e), error)
    finally:
        dataforum.commit()
        dataforum.close()