コード例 #1
0
 def POST(self):
     id = xutils.get_argument("id")
     # xtables.get_schedule_table().delete(where=dict(id=id))
     key = "schedule:%s" % id
     dbutil.delete(key)
     xmanager.load_tasks()
     raise web.seeother("/system/crontab")
コード例 #2
0
def build_index():
    # 先删除老的索引
    for key, value in dbutil.prefix_iter("note_tiny:", include_key=True):
        dbutil.delete(key)

    # old key to new key
    for item in dbutil.prefix_iter("note_full:"):
        put_note_tiny(item)

    migrate_note_recent()
    return "迁移完成!"
コード例 #3
0
ファイル: db_tools.py プロジェクト: dudefu/xnote
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 "迁移完成!"
コード例 #4
0
 def check_and_run(task, tm):
     if self.match(task, tm):
         put_task(request_url, task)
         try:
             xutils.trace("RunTask", task.url)
             if task.tm_wday == "no-repeat":
                 # 一次性任务直接删除
                 dbutil.delete(task.id)
                 self.load_tasks()
         except Exception as e:
             xutils.log("run task [%s] failed, %s" % (task.url, e))
コード例 #5
0
def delete_note(id):
    note = get_by_id(id)
    if note is None:
        return

    if note.is_deleted != 0:
        # 已经被删除了,执行物理删除
        tiny_key = "note_tiny:%s:%s" % (note.creator, note.id)
        full_key = "note_full:%s" % note.id
        index_key = "note_index:%s" % note.id
        dbutil.delete(tiny_key)
        dbutil.delete(full_key)
        dbutil.delete(index_key)
        delete_history(note.id)
        return

    # 标记删除
    note.mtime = xutils.format_datetime()
    note.is_deleted = 1
    kv_put_note(id, note)

    # 更新数量
    update_children_count(note.parent_id)
    delete_tags(note.creator, id)

    # 删除笔记本
    book_key = "notebook:%s:%s" % (note.creator, format_note_id(id))
    dbutil.delete(book_key)

    # 更新数量统计
    refresh_note_stat(note.creator)
コード例 #6
0
def delete_old_visit_log(creator, note_id):
    counter = Counter()

    def filter_func(key, value):
        log_id = get_id_from_log(value)
        counter.update("v")
        return log_id == note_id or counter["v"] > MAX_VIEW_LOG

    old_logs = dbutil.prefix_list("note_visit_log:%s:" % creator,
                                  filter_func,
                                  include_key=True,
                                  reverse=True)
    for key, value in old_logs:
        dbutil.delete(key)
コード例 #7
0
def delete_note(id):
    print("try to delete note", id)
    note = get_by_id(id)
    if note is None:
        return

    if note.is_deleted == 1:
        # 已经被删除了,执行物理删除
        tiny_key = "note_tiny:%s:%s" % (note.creator, note.id)
        full_key = "note_full:%s" % note.id
        index_key = "note_index:%s" % note.id
        dbutil.delete(tiny_key)
        dbutil.delete(full_key)
        dbutil.delete(index_key)
        return

    note.mtime = xutils.format_datetime()
    note.is_deleted = 1
    kv_put_note(id, note)
    update_children_count(note.parent_id)
    delete_tags(note.creator, id)

    book_key = "notebook:%s:%020d" % (note.creator, int(id))
    dbutil.delete(book_key)

    # 更新数量统计
    refresh_note_stat(note.creator)
コード例 #8
0
def migrate_note_history():
    # sqlite to kv
    db = xtables.get_note_history_table()
    for item in db.select():
        dbutil.put("note_history:%s:%s" % (item.note_id, item.version), item)

    # old_key to new_key
    for item in dbutil.prefix_iter("note.history"):
        # 这里leveldb第一版没有note_id,而是id字段
        old_key = "note.history:%s:%s" % (item.id, item.version)
        new_key = "note_history:%s:%s" % (item.id, item.version)
        new_value = dbutil.get(new_key)
        if new_value and (new_value.mtime is None
                          or item.mtime > new_value.mtime):
            dbutil.put(new_key, item)
            dbutil.delete(old_key)

        if new_value is None:
            dbutil.put(new_key, item)
            dbutil.delete(old_key)
    return "迁移完成!"
コード例 #9
0
def update_public_index(note):
    if note.is_public:
        note_index = convert_to_index(note)
        dbutil.put("note_public:%s" % format_note_id(note.id), note_index)
    else:
        dbutil.delete("note_public:%s" % format_note_id(note.id))
コード例 #10
0
def delete_comment(comment_id):
    dbutil.delete(comment_id)
コード例 #11
0
def delete_tags(creator, note_id):
    key = "note_tags:%s:%s" % (creator, note_id)
    dbutil.delete(key)
コード例 #12
0
ファイル: xauth.py プロジェクト: gotonking/miniNote
def remove_user(name):
    if name == "admin":
        return
    name = name.lower()
    dbutil.delete("user:%s" % name)
    refresh_users()
コード例 #13
0
def delete_message_by_id(id):
    dbutil.delete(id)
    xmanager.fire("message.remove", Storage(id=id))
コード例 #14
0
ファイル: plugins.py プロジェクト: driphub/xnote
def delete_visit_log(user_name, name, url):
    exist_log = find_visit_log(user_name, url)
    if exist_log != None:
        dbutil.delete(exist_log.key)