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

相關文章
相關標籤/搜索