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)
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 )
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)
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)
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)
def _name2id_set(self, name, id): NAME2ID = self.NAME2ID if not redis.hget(NAME2ID, name): redis.hset(NAME2ID, name, id)