예제 #1
0
def po_tag_id_list_new(po, tag_id_list, cid=0):
    cid = int(cid)
    po_id = po.id

    if not cid:
        cid = redis.hget(REDIS_PO_ID2TAG_CID, po_id) or 0
        cid = int(cid)
        if not cid:
            if po.cid == CID_NOTE:
                txt = po.txt
                if len(txt) > 420:
                    cid = REDIS_REC_CID_NOTE
                else:
                    cid = REDIS_REC_CID_TALK

    if cid and cid in REDIS_REC_CID_DICT:
        #将po放在相应的po_id=>cid中
        redis.hset(REDIS_PO_ID2TAG_CID, po_id, cid)


    new_tag_id_list = set(map(int, tag_id_list))
    old_tag_id_list = set(tag_id_list_by_po_id(po_id))

    to_add = new_tag_id_list - old_tag_id_list
    to_rm = old_tag_id_list - new_tag_id_list


    _po_tag_id_cid_new(po, old_tag_id_list - to_rm, cid)

    user_id = po.user_id
    _tag_rm_by_user_id_list(po, user_id, to_rm)

    for tag_id in to_add:
        _zsite_tag_po_new(tag_id, po, cid)
예제 #2
0
def po_tag_id_list_new(po, tag_id_list, cid=0):
    cid = int(cid)
    po_id = po.id

    if not cid:
        cid = redis.hget(REDIS_PO_ID2TAG_CID, po_id) or 0
        cid = int(cid)
        if not cid:
            if po.cid == CID_NOTE:
                txt = po.txt
                if len(txt) > 420:
                    cid = REDIS_REC_CID_NOTE
                else:
                    cid = REDIS_REC_CID_TALK

    if cid and cid in REDIS_REC_CID_DICT:
        #将po放在相应的po_id=>cid中
        redis.hset(REDIS_PO_ID2TAG_CID, po_id, cid)

    new_tag_id_list = set(map(int, tag_id_list))
    old_tag_id_list = set(tag_id_list_by_po_id(po_id))

    to_add = new_tag_id_list - old_tag_id_list
    to_rm = old_tag_id_list - new_tag_id_list

    _po_tag_id_cid_new(po, old_tag_id_list - to_rm, cid)

    user_id = po.user_id
    _tag_rm_by_user_id_list(po, user_id, to_rm)

    for tag_id in to_add:
        _zsite_tag_po_new(tag_id, po, cid)
예제 #3
0
    def append(self, name, id , rank=1):
        from zkit.fanjian import ftoj
        name = ftoj(name.decode('utf-8', 'ignore'))
        ID2NAME = self.ID2NAME

        if rank is None:
            rank = 0

        value = redis.hget(ID2NAME, id)

        _append = False
        if value:
            value_name, value_rank = value.rsplit('`', 1)
            if value_name != name:
                ZSET_CID = self.ZSET_CID
                CACHE = self.CACHE
                NAME2ID = self.NAME2ID
                p = redis.pipeline()
                for i in self._key(value_name):
                    p.delete(CACHE%i)
                    p.zrem(ZSET_CID%i, id)
                p.hdel(NAME2ID, value_name)
                p.execute()
                _append = True
            elif int(rank) != int(value_rank):
                _append = True
        else:
            _append = True

        if _append:
            if name:
                self._append(name, id, rank)
                tag_name = name.replace('`', "'").strip()
                redis.hset(ID2NAME, id, '%s`%s'%(tag_name, rank))
                self._name2id_set(name,id )
예제 #4
0
def _tag_alias_new(id, name):
    low = name.lower()
    redis.sadd(REDIS_ALIAS % id, low)
    redis.hset(REDIS_ALIAS_NAME2ID, low, id)
    from model.autocomplete import autocomplete_tag
    autocomplete_tag.append_alias(name, id)
예제 #5
0
def rec_limit_by_time(user_id, limit):
    now = time_new_offset()
    last = redis.hget(REDIS_REC_LAST_TIME, user_id) or 0
    times = int((now - int(last) + 59)//60)
    redis.hset(REDIS_REC_LAST_TIME, user_id, now)
    return min(times, limit)
예제 #6
0
def _tag_alias_new(id, name):
    low = name.lower()
    redis.sadd(REDIS_ALIAS%id, low)
    redis.hset(REDIS_ALIAS_NAME2ID, low, id)
    from model.autocomplete import  autocomplete_tag
    autocomplete_tag.append_alias(name, id)
예제 #7
0
 def _name2id_set(self, name, id):
     NAME2ID = self.NAME2ID
     if not redis.hget(NAME2ID, name):
         redis.hset(NAME2ID, name, id)