def migrate_note_recent(): recent_list = dbutil.prefix_iter("note_recent", include_key=True) for key, item in recent_list: dbutil.delete(key) for item in dbutil.prefix_iter("note_tiny"): if item.type != "group": dbutil.zadd("note_recent:%s" % item.creator, item.mtime, item.id) if item.is_public: dbutil.zadd("note_recent:public", item.mtime, item.id) return "迁移完成!"
def kv_put_note(note_id, note): priority = note.priority mtime = note.mtime creator = note.creator atime = note.atime dbutil.put("note_full:%s" % note_id, note) score = "%02d:%s" % (priority, mtime) if note.is_deleted: dbutil.zrem("note_recent:%s" % creator, note_id) dbutil.zrem("note_visit:%s" % creator, note_id) else: dbutil.zadd("note_recent:%s" % creator, score, note_id) dbutil.zadd("note_visit:%s" % creator, atime, note_id) del note['content'] del note['data'] dbutil.put("note_tiny:%s:%020d" % (note.creator, int(note_id)), note)
def create_note(note_dict): content = note_dict["content"] data = note_dict["data"] creator = note_dict["creator"] priority = note_dict["priority"] mtime = note_dict["mtime"] if xconfig.DB_ENGINE == "sqlite": db = xtables.get_file_table() id = db.insert(**note_dict) update_note_content(id, content, data) return id else: id = dbutil.timeseq() key = "note_full:%s" % id note_dict["id"] = id dbutil.put(key, note_dict) score = "%02d:%s" % (priority, mtime) dbutil.zadd("note_recent:%s" % creator, score, id) update_children_count(note_dict["parent_id"]) return id
def update_note_rank(note): mtime = note.mtime atime = note.atime creator = note.creator note_id = note.id if note.is_deleted: dbutil.zrem("note_recent:%s" % creator, note_id) dbutil.zrem("note_visit:%s" % creator, note_id) dbutil.zrem("note_recent:public", note_id) elif note.type != "group": # 分组不需要记录 dbutil.zadd("note_recent:%s" % creator, mtime, note_id) dbutil.zadd("note_visit:%s" % creator, atime, note_id) if note.is_public: dbutil.zadd("note_recent:public", mtime, note_id)