折腾:
【已解决】Python更新印象笔记note帖子的内容
期间,需要根据配置,去更新笔记本
比如从sync同步后,移动到:2_ToPublish
然后去写代码
其中参考
其中笔记本,感觉是:
notebookGuid
然后再去看细节
“notebookGuid
The unique identifier of the notebook that contains this note. If no notebookGuid is provided on a call to createNote(), the default notebook will be used instead.
Length: EDAM_GUID_LEN_MIN – EDAM_GUID_LEN_MAX
Regex: EDAM_GUID_REGEX”
看来此处只知道notebook的name,还没发获取到guid
需要:自己单独调试一次,才能知道
或者单独初始化去获取一次
还是去初始化,从notebook的name获取到guid,更合适
结果不是要的
感觉可以
去列出所有的notebook
然后通过name对比,得到guid
关于获取所有笔记本,突然发现之前已有代码:
def EvernoteToWordpress(): """Process evernote note into wordpress""" global gEvernote notebookList = gEvernote.listNotebooks() notebookListLen = len(notebookList) logging.info("Found %s notebooks:", notebookListLen) for curNotebook in notebookList: logging.debug("\tguid=%s", curNotebook.guid)
所以可以借用。
写成:
def initNotebookGuid(): global gCfg, gEvernote toProcessNotebook = gCfg["evernote"]["toProcessNotebook"] moveToNotebook = gCfg["evernote"]["afterSync"]["moveToNotebook"] notebookList = gEvernote.listNotebooks() for curNotebook in notebookList: if toProcessNotebook["guid"] and moveToNotebook["guid"]: break if curNotebook.name == toProcessNotebook["name"]: toProcessNotebook["guid"] = curNotebook.guid logging.info("init notebook name=%s, guid=%s", toProcessNotebook["name"], toProcessNotebook["guid"]) elif curNotebook.name == moveToNotebook["name"]: moveToNotebook["guid"] = curNotebook.guid logging.info("init notebook name=%s, guid=%s", moveToNotebook["name"], moveToNotebook["guid"])
待后续调试
然后可以解析出对应2个notebook的guid:
20201126 08:02:42 EvernoteToWordpress.py:966 INFO init notebook name=1_ToProcess, guid=cb52dc67-80d3-4a09-afb8-b889ca54ddf4 20201126 08:02:43 EvernoteToWordpress.py:969 INFO init notebook name=2_ToPublish, guid=eed20ba9-b927-42e5-99a6-14d6bf76416d
后续代码:
def processAndSyncNote(curNote): """ Process note and sync to Evernote title to slug merge title and url auto add tags from tags get category Args: curNote (Note): evernote Note Returns: Raises: """ global gCfg needUpdateAttributes = False logging.debug("curNote=%s", curNote) noteGuid = curNote.guid noteTitle = curNote.title logging.info("noteTitle=%s, noteGuid=%s", noteTitle, noteGuid) noteDetail = gEvernote.getNoteDetail(noteGuid) # logging.debug("noteDetail=%s", noteDetail) # 1. Process Note noteDetail = processNoteTags(noteDetail) noteDetail = crifanEvernote.resizeAndUpdateNoteImage(noteDetail) # for debug # noteDetail.attributes.sourceURL = None oldSourceUrl = noteDetail.attributes.sourceURL # 'win_qq_browser_alt_tidle_cause_close_brower' noteDetail = processNoteSlug(noteDetail) newSourceUrl = noteDetail.attributes.sourceURL if newSourceUrl: isSourceUrlChanged = newSourceUrl != oldSourceUrl if isSourceUrlChanged: needUpdateAttributes = True noteDetail = mergeNoteTitleAndUrl(noteDetail) # 2. Sync to Evernote syncParamDict = { # mandatory "noteGuid": noteDetail.guid, "noteTitle": noteDetail.title, # optional "newContent": noteDetail.content, "newResList": noteDetail.resources, } if needUpdateAttributes: syncParamDict["newAttributes"] = noteDetail.attributes if gCfg["evernote"]["afterSync"]["isMoveNotebook"]: # notebookNameToMoveTo = gCfg["evernote"]["afterSync"]["moveToNotebook"]["name"] notebookGuidToMoveTo = gCfg["evernote"]["afterSync"]["moveToNotebook"]["guid"] syncParamDict["notebookGuid"] = notebookGuidToMoveTo respNote = gEvernote.syncNote(**syncParamDict) logging.debug("respNote=%s", respNote) logging.info("complete sync note %s", noteDetail.title) # Note: here sync resp note is not contain full detail info # for updated latest Note detail, should get from getNoteDetail return
也可以正常的,更换,同步 笔记本
从:
1_ToProcess
sync更新后
更换到:
2_ToPublish
实现了,更换 笔记本 的效果。
转载请注明:在路上 » 【已解决】Python更新印象笔记帖子的笔记本