Пример #1
0
def run(from_reply=0):
    with dbconfig.Session() as session:
        reply_list = []
        post_ids = set()

        posts = session.query(Post).filter(Post.uid).order_by(
            Post.postid.desc()).limit(20).all()
        for post in posts:
            post_ids.add(post.postid)
        replys = session.query(PostReply).filter(
            PostReply.uid == BackEndEnvData.uid).order_by(
                PostReply.replyid.desc()).limit(30).all()
        for reply in replys:
            post_ids.add(reply.postid)

        if len(post_ids) == 0:
            return Res({"replys": []})

        subquery = session.query(PostReply)
        subquery = subquery.filter(
            and_(PostReply.postid.in_(list(post_ids)),
                 PostReply.replyid > from_reply))
        replys = subquery.order_by(PostReply.replyid).limit(100).all()
        for reply in replys:
            reply_list.append(reply.toJson())
        return Res({"replys": reply_list})
Пример #2
0
def run(gid, pos=0, count=50):
    with dbconfig.Session() as session:
        group = session.query(Group).filter(Group.gid == gid).first()
        if group is None:
            return Res(errno=3, error="group not exist")
        if group.only_member_watch and group.creator != BackEndEnvData.uid:
            member = session.query(GroupMember).filter(
                and_(GroupMember.gid == gid,
                     GroupMember.uid == BackEndEnvData.uid)).first()
            if member is None:
                return Res(errno=2, error="only member can watch")
        if pos == 0:
            query = session.query(Post).filter(Post.group_id == gid).order_by(
                Post.postid.desc())
        else:
            query = session.query(Post).filter(
                and_(Post.group_id == gid,
                     Post.postid < pos)).order_by(Post.postid.desc())
        query = query.limit(count)
        posts = query.all()
        plist = []
        for post in posts:
            pdata = post.toJson()
            ilike_record = session.query(PostLike).filter(
                and_(PostLike.postid == post.postid,
                     PostLike.uid == BackEndEnvData.uid)).first()
            pdata['ilike'] = True if ilike_record is not None else False
            plist.append(pdata)
        return Res({'posts': plist})
Пример #3
0
def run(uid, recommend_word, city, sex, sex_want, contact, age, tags):
    with dbconfig.Session() as session:
        user = session.query(User).filter(User.uid == uid)
        if user is None:
            return Res({}, errno=3, error='user not exists')
        ru = RecommendUser()
        ru.uid = uid
        ru.recommend_uid = BackEndEnvData.uid
        ru.recommend_word = recommend_word
        ru.city = city
        ru.sex = sex
        ru.sex_want = sex_want
        ru.contact = contact
        ru.age = age
        if isinstance(tags, list):
            ru.tags = '|'.join(tags)

        session.merge(ru)
        session.commit()

        event = Events()
        event.touid = uid
        event.param1 = uid
        event.param2 = BackEndEnvData.uid
        event.type = "recommend"
        event = session.merge(event)
        session.commit()

        AddEventNotify(event)

    return Res()
Пример #4
0
def run(uid,
        recommend_id,
        recommend_word=None,
        city=None,
        sex=None,
        sex_want=None,
        contact=None,
        age=None,
        tags=None):
    if uid != BackEndEnvData.uid and recommend_id != BackEndEnvData.uid:
        return Res(errno=2, error="can not modify")
    with dbconfig.Session() as session:
        ru = session.query(RecommendUser).filter(
            and_(RecommendUser.uid == uid,
                 RecommendUser.recommend_uid == recommend_id)).first()
        if recommend_word:
            ru.recommend_word = recommend_word
        if city:
            ru.city = city
        if sex:
            ru.sex = sex
        if sex_want:
            ru.sex_want = sex_want
        if contact:
            ru.contact = contact
        if age:
            ru.age = age
        if tags and isinstance(tags, list):
            ru.tags = '|'.join(tags)
        session.merge(ru)
        session.commit()
    return Res()
Пример #5
0
def run(gid,uid):
    if isinstance(uid,list)==False:
        uid=[uid]
    with dbconfig.Session() as session:

        group=session.query(Group).filter(Group.gid==gid).first()
        if group is None or (group.everyone_caninvite==0 and group.creator!=BackEndEnvData.uid):
            return Res(errno=2,error="not everyone can invaite and you are not creator")
        if group.creator!=uid:
            gm=session.query(GroupMember).filter(and_(GroupMember.gid==gid,GroupMember.uid==uid)).first()
            if gm is None:
                return Res(errno=2,error="you are not member")

        events=[]
        for u in uid:
            event=Events()
            event.touid=u
            event.type="group_invite"
            event.param1=gid
            event.param2=BackEndEnvData.uid
            event=session.merge(event)
            events.append(event)
        session.commit()
        for ev in events:
            AddEventNotify(ev)
    return Res()
Пример #6
0
def run(gid,
        name=None,
        board=None,
        type=0,
        position=None,
        everyone_caninvite=None,
        only_member_speak=None,
        only_member_watch=None):
    with dbconfig.Session() as session:
        ginfo = session.query(Group).filter(Group.gid == gid).first()
        if ginfo is None:
            return Res({}, 2, "group not exists")
        if ginfo.creator != BackEndEnvData.uid:
            return Res({}, 2, 'not creator')
        if name:
            ginfo.group_name = name
        if board:
            ginfo.group_board = board
        if type:
            ginfo.type = type
        if position:
            ginfo.group_postion = position
        if everyone_caninvite is not None:
            ginfo.everyone_caninvite = everyone_caninvite
        if only_member_speak is not None:
            ginfo.only_member_speak = only_member_speak
        if only_member_watch is not None:
            ginfo.only_member_watch = only_member_watch
        session.merge(ginfo)
        session.commit()

        return Res()
Пример #7
0
def run(gid):
    with dbconfig.Session() as session:
        group_to_del = session.query(Group).filter(Group.gid == gid).first()
        if group_to_del.creator != BackEndEnvData.uid:
            return Res(errno=2, error="group is not yours")
        session.delete(group_to_del)
        session.query(GroupMember).filter(
            GroupMember.gid == group_to_del.gid).delete()
        session.commit()
        return Res()
Пример #8
0
def run(gid, uid):
    if isinstance(uid, list) == False:
        uid = [uid]
    with dbconfig.Session() as session:
        group = session.query(Group).filter(Group.gid == gid).first()
        if group is None or group.creator != BackEndEnvData.uid:
            return Res(errno=2, error='group not exist or you not right')
        session.query(GroupMember).query(
            and_(GroupMember.gid == gid, GroupMember.uid.in_(uid))).delete()
        session.commit()
    return Res()
Пример #9
0
def run(uid, content=None, lat=None, long=None):
    if content == None and (lat == None or long == None):
        return Res(errno=3, error="param error")
    with dbconfig.Session() as session:
        newmsg = Message()
        newmsg.toid = uid
        newmsg.fromid = BackEndEnvData.uid
        newmsg.content = content
        newmsg.lat = lat
        newmsg.long = long
        newmsg = session.merge(newmsg)
        session.commit()
        AddMessageTrans(newmsg.toJson())
        return Res({'msgid': newmsg.msgid})
Пример #10
0
def run(postid):
    with dbconfig.Session() as session:
        post = session.query(Post).filter(Post.postid == postid).first()
        if post:
            if post.uid != BackEndEnvData.uid:
                return Res(errno=2, error="not creator")
            session.delete(post)
            session.query(PostLike).filter(PostLike.postid == postid).delete()
            session.query(PostReply).filter(
                PostReply.postid == postid).delete()
            session.commit()
        else:
            return Res(errno=3, error="not exist")
        return Res()
Пример #11
0
def run(gid):
    with dbconfig.Session() as session:
        members=session.query(GroupMember).filter(GroupMember.gid==gid).order_by(GroupMember.time.desc()).all()
        memberlist=[]
        for m in members:
            memberlist.append({'uid':m.uid,"type":m.type,"time":m.time})
        return Res({'members':memberlist})
Пример #12
0
def run(uid,type=0):
    if isinstance(uid,list)==False:
        uid=[uid]
    uids=[]
    for u in uid:
        if u!=BackEndEnvData.uid:
            uids.append(u)
    with dbconfig.Session() as session:
        eventpost=[]
        for id in uids:
            friend=FriendList()
            friend.uid=BackEndEnvData.uid
            friend.friendid=id
            friend.type=type
            session.merge(friend)

            event=Events()
            event.touid=id
            event.param1=BackEndEnvData.uid
            event.type="add_friend"
            event=session.merge(event)
            eventpost.append(event)

        session.commit()
        for e in eventpost:
            AddEventNotify(e)
    return Res()
Пример #13
0
def run(gid):
    with dbconfig.Session() as session:
        session.query(GroupMember).filter(
            and_(GroupMember.gid == gid,
                 GroupMember.uid == BackEndEnvData.uid)).delete()
        session.commit()
    return Res()
Пример #14
0
def run(postid):
    with dbconfig.Session() as session:
        exdatas=session.query(PostExData).filter(PostExData.postid==postid).all()
        exlist=[]
        for e in exdatas:
            exlist.append(e.toJson())
        return Res({'exdata':exlist})
Пример #15
0
def run():
    with dbconfig.Session() as session:
        gms = session.query(GroupMember).filter(
            GroupMember.uid == BackEndEnvData.uid).all()
        glist = []
        for gm in gms:
            glist.append({'gid': gm.gid, 'type': gm.type, 'time': gm.time})
        return Res({'groups': glist})
Пример #16
0
def run(postid, pos=0, count=20):
    with dbconfig.Session() as session:
        replys = session.query(PostReply).filter(
            PostReply.postid == postid).offset(pos).limit(count).all()
        rplist = []
        for reply in replys:
            rplist.append(reply.toJson())
        return Res({'replys': rplist})
Пример #17
0
def run(postid, pos=0, count=50):
    with dbconfig.Session() as session:
        lks = session.query(PostLike).filter(
            PostLike.postid == postid).order_by(
                PostLike.time.desc()).offset(pos).limit(count).all()
        lklist = []
        for lk in lks:
            lklist.append({'uid': lk.uid, 'time': lk.time})
    return Res({'users': lklist})
Пример #18
0
def run(uid):
    if isinstance(uid, list) == False:
        uid = [uid]
    with dbconfig.Session() as session:
        session.query(FriendList).filter(
            and_(FriendList.uid == BackEndEnvData.uid,
                 FriendList.friendid.in_(uid))).delete('fetch')
        session.commit()
    return Res()
Пример #19
0
def run(uid):
    if isinstance(uid, list) == False:
        uid = [uid]
    with dbconfig.Session() as session:
        users = session.query(User).filter(User.uid.in_(uid)).all()
        ulist = []
        for user in users:
            ulist.append(user.toJson())
    return Res({"users": ulist})
Пример #20
0
def run(uid, recommend_uid):
    with dbconfig.Session() as session:
        medias = session.query(RecommendMedia).filter(
            and_(RecommendMedia.uid == uid,
                 RecommendMedia.recommend_uid == recommend_uid)).all()
        mediaslist = []
        for e in medias:
            mediaslist.append(e.toJson())
        return Res({'exdata': mediaslist})
Пример #21
0
def run(gid,type=1):
    with dbconfig.Session() as session:
        gmember=GroupMember()
        gmember.gid=gid
        gmember.uid=BackEndEnvData.uid
        gmember.type=type
        session.merge(gmember)
        session.commit()
    return Res()
Пример #22
0
def run(gid):
    if isinstance(gid, list) == False:
        gid = [gid]
    with dbconfig.Session() as session:
        gps = session.query(Group).filter(Group.gid.in_(gid)).all()
        glist = []
        for gp in gps:
            glist.append(gp.toJson())
    return Res({"groups": glist})
Пример #23
0
def run(device_token, is_debug):
    with dbconfig.Session() as session:
        device = IOSDevice()
        device.uid = BackEndEnvData.uid
        device.device_token = device_token
        device.is_debug = is_debug
        session.merge(device)
        session.commit()
    return Res()
Пример #24
0
def run(long,lat):
    with dbconfig.Session() as session:
        userpos=UserGeoPosition()
        userpos.uid=BackEndEnvData.uid
        userpos.long=long
        userpos.lat=lat
        userpos.geokey=CombineGeo(long,lat)
        session.merge(userpos)
        session.commit()
    return Res()
Пример #25
0
def run(pos=0):
    with dbconfig.Session() as session:
        events=session.query(Events).filter(and_(Events.touid==BackEndEnvData.uid,Events.eid>pos))\
            .order_by(Events.eid.desc()).limit(50).all()
        eventlist = []
        for event in events:
            eo = LoadEvent(event.toJson())
            if eo:
                eventlist.append(eo)
        return Res({'events': eventlist})
Пример #26
0
def run(uid, recommend_uid):
    with dbconfig.Session() as session:
        ru = session.query(RecommendUser).filter(
            and_(RecommendUser.uid == uid,
                 RecommendUser.recommend_uid == recommend_uid)).first()
        return Res({
            "info":
            ru.toJson(ru.uid == BackEndEnvData.uid
                      or ru.recommend_uid == BackEndEnvData.uid)
        })
Пример #27
0
def run(gid, frompos):
    with dbconfig.Session() as session:
        posts = session.query(Post).filter(
            and_(Post.group_id == gid,
                 Post.postid > frompos)).order_by(Post.postid.desc()).all()
        plist = []
        for post in posts:
            pdata = post.toJson()
            pdata['ilike'] = False
            plist.append(pdata)
    return Res({'posts': plist})
Пример #28
0
def run(phone_list):
    with dbconfig.Session() as session:
        for one in phone_list:
            pb = PhoneBook()
            pb.uid = BackEndEnvData.uid
            pb.phone = one['phone']
            pb.name = one.get('name')
            session.merge(pb)
        session.commit()
    AddPhoneBookUpdated(BackEndEnvData.uid)
    return Res()
Пример #29
0
def run(postid):
    with dbconfig.Session() as session:
        likerecord = session.query(PostLike).filter(
            and_(PostLike.postid == postid,
                 PostLike.uid == BackEndEnvData.uid)).first()
        if likerecord is not None:
            session.delete(likerecord)
            session.query(Post).filter(Post.postid == postid).update(
                {Post.like: Post.like - 1})
            session.commit()
    return Res()
Пример #30
0
def run(nick=None):
    with dbconfig.Session() as session:
        query=session.query(User)
        if nick:
            query=query.filter(User.nick.like(nick+'%')).order_by(User.nick)
        query=query.limit(20)
        alluser=query.all()
        user_list=[]
        for u in alluser:
            user_list.append(u.toJson())
    return Res({"users":user_list})