折腾:
【已解决】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更新印象笔记帖子的笔记本