leanote使用本地帐户+坚果云同步

1. 换机器后笔记没法显示

这是由于新建帐户与原帐户userid不一致。 
正确的同步方式为:
python

  • 下载leanote并解压,不运行,不新建帐户
  • 从坚果云同步leanote数据
  • 建立leanote的数据目录,创建软链接指向坚果云中的真实数据
  • 运行leanote

总之,在既有的多个机器上同步leanote笔记,每次开工前应该先用坚果云同步数据,同步完成后再打开leanote,不然会数据冲突!linux

 

2. 从Linux到Windows图片没法显示

这是由于系统路径不同。查看leanote/nedb55/(userid)/images.db文件可一窥究竟。 
windows图片路径前缀为C:\\Users\\Ting\\AppData\\Roaming/leanote/data/(userid)/images/, linux为/home/wy/.config/leanote/data/(userid)/images/. 
写了个python脚本实现转换:
json

# -*- coding: utf-8 -*-
'''
python t.py win 便可将文件路径转变为Windows系统下的路径;
python t.py linux 便可转为Linux系统下的路径。
'''
import json
import sys
def store(mylist):
    with open('images.db', 'w') as f:
        for line in mylist:
            f.write(json.dumps(line)+"\n")
def load():
    mylist=[]
    with open('images.db') as f:
        for line in f.readlines():
            mylist.append(line)
        return mylist
if __name__ == "__main__":
    if(len(sys.argv)!=2):
        print("input an arg: win OR linux")
        sys.exit(1)
    prefix=""
    if(sys.argv[1]=="win"):
        prefix="C:\\Users\\Ting\\AppData\\Roaming/leanote/data/5a00fbf54dc7275b64000000/images/"
    elif(sys.argv[1]=="linux"):
        prefix="/home/wy/.config/leanote/data/5a00fbf54dc7275b64000000/images/"
    else:
        print("arg error!")
        sys.exit(1)
    mylist=load()
    reslist=[]
    # print(type(mylist)) # <type 'list'>
    for line in mylist:
        #print("000:" + line)
        #print(type(line)) # <type 'str'>
        json_line=json.loads(line)
        # print(type(json_line)) # # <type 'dict'>
        file_name=json_line["Name"]
        path=prefix + file_name
        json_line["Path"]=path
        #print("111:" + str(json_line))
        reslist.append(json_line)
    store(reslist)
    print("done!")

另外,既然使用本地帐户,就删除images.db文件中ServerFileId的对应内容。windows

相关文章
相关标签/搜索