Example #1
0
def _zsite_tag_po_new(zsite_id, po, cid, rank=1):
    po_id = po.id
    cid = int(cid)
    tag_po = PoZsiteTag.get_or_create(po_id=po_id, cid=po.cid, zsite_id=zsite_id)
    tag_po.rank = rank
    tag_po.save()

    user_id = po.user_id
    if user_id:
        user_rank = zsite_list_get(user_id, zsite_id, CID_TAG)
        if not user_rank:
            user_rank = zsite_list_new(user_id, zsite_id, CID_TAG)
        else:
            user_rank.rank += 1
            user_rank.save()

    mc_flush(zsite_id, po_id)

    rec_read_new(po_id, zsite_id)
    if cid in REDIS_REC_CID_DICT:
        #print zsite_id, po, cid

        p = redis.pipeline()

        #将分数放到相应的ranged set里面
        key = REDIS_TAG_CID%(zsite_id, cid)
        p.zadd(key, po_id, hot(1, 0, po.create_time))

        key = REDIS_TAG_CID_COUNT%zsite_id
        p.hincrby(key, cid, 1)

        p.execute()

    return tag_po
Example #2
0
def _tag_rm_by_user_id_list(po, user_id, id_list):
    #print "_tag_rm_by_user_id_list", user_id
    po_id = po.id
    from model.rec_read import rec_read_po_tag_rm
    rec_read_po_tag_rm(po_id, id_list)

    for tag_id in id_list:

        PoZsiteTag.where(zsite_id=tag_id, po_id=po_id).delete()
        mc_flush_by_zsite_id(tag_id)

        user_rank = zsite_list_get(user_id, tag_id, CID_TAG)
        if user_rank and user_rank.rank:
            user_rank.rank -= 1
            if user_rank.rank < 0:
                user_rank.rank = 0
            user_rank.save()

    def _(cid):
        for tag_id in id_list:
            #将分数放到相应的ranged set里面
            key = REDIS_TAG_CID % (tag_id, cid)
            count = max(redis.zcard(key) - 1, 0)

            p = redis.pipeline()
            p.zrem(key, po_id)

            for i in (REDIS_REC_TAG_NEW, REDIS_REC_TAG_OLD):
                key = i % tag_id
                p.zrem(key, po_id)

            p.hset(REDIS_TAG_CID_COUNT % tag_id, cid, count)
            p.execute()

    cid = tag_cid_by_po_id(po_id)

    if cid:
        _(cid)
    else:
        for cid in REDIS_REC_CID_DICT:
            _(cid)
Example #3
0
def _tag_rm_by_user_id_list(po, user_id, id_list):
    #print "_tag_rm_by_user_id_list", user_id
    po_id = po.id
    from model.rec_read import rec_read_po_tag_rm
    rec_read_po_tag_rm(po_id, id_list)

    for tag_id in id_list:

        PoZsiteTag.where(zsite_id=tag_id, po_id=po_id).delete()
        mc_flush_by_zsite_id(tag_id)

        user_rank = zsite_list_get(user_id, tag_id, CID_TAG)
        if user_rank and user_rank.rank:
            user_rank.rank -= 1
            if user_rank.rank < 0:
                user_rank.rank = 0
            user_rank.save()
    
    def _(cid): 
        for tag_id in id_list:
            #将分数放到相应的ranged set里面
            key = REDIS_TAG_CID%(tag_id, cid)
            count = max(redis.zcard(key) - 1, 0)

            p = redis.pipeline()
            p.zrem(key, po_id)

            for i in (REDIS_REC_TAG_NEW, REDIS_REC_TAG_OLD):
                key = i%tag_id
                p.zrem(key, po_id)

            p.hset(REDIS_TAG_CID_COUNT%tag_id, cid, count)
            p.execute()

    cid = tag_cid_by_po_id(po_id)

    if cid:
        _(cid)
    else:
        for cid in  REDIS_REC_CID_DICT:
            _(cid)
Example #4
0
def _zsite_tag_po_new(zsite_id, po, cid, rank=1):
    po_id = po.id
    cid = int(cid)
    tag_po = PoZsiteTag.get_or_create(po_id=po_id,
                                      cid=po.cid,
                                      zsite_id=zsite_id)
    tag_po.rank = rank
    tag_po.save()

    user_id = po.user_id
    if user_id:
        user_rank = zsite_list_get(user_id, zsite_id, CID_TAG)
        if not user_rank:
            user_rank = zsite_list_new(user_id, zsite_id, CID_TAG)
        else:
            user_rank.rank += 1
            user_rank.save()

    mc_flush(zsite_id, po_id)

    rec_read_new(po_id, zsite_id)
    if cid in REDIS_REC_CID_DICT:
        #print zsite_id, po, cid

        p = redis.pipeline()

        #将分数放到相应的ranged set里面
        key = REDIS_TAG_CID % (zsite_id, cid)
        p.zadd(key, po_id, hot(1, 0, po.create_time))

        key = REDIS_TAG_CID_COUNT % zsite_id
        p.hincrby(key, cid, 1)

        p.execute()

    return tag_po
Example #5
0
def zsite_show_get(zsite_id, cid=CID_USER):
    return zsite_list_get(zsite_id, OWNER_ID, cid)
Example #6
0
def zsite_show_get(zsite_id, cid=CID_USER):
    return zsite_list_get(zsite_id, OWNER_ID, cid)