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

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

这是因为新建账户与原账户userid不一致。 
正确的同步方式为:

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

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

 

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脚本实现转换:

# -*- 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)+"
")
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的对应内容。

原文地址:https://www.cnblogs.com/duanguyuan/p/7806548.html