最新消息:20210917 已从crifan.com换到crifan.org

【已解决】Python更新印象笔记帖子的笔记本

Python crifan 419浏览 0评论
折腾:
【已解决】Python更新印象笔记note帖子的内容
期间,需要根据配置,去更新笔记本
比如从sync同步后,移动到:2_ToPublish
然后去写代码
其中参考
Struct_Note Thrift module: Types
其中笔记本,感觉是:
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,更合适
Fn_NoteStore_getNotebook Thrift module: NoteStore
结果不是要的
感觉可以
Function: NoteStore.listNotebooks
去列出所有的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更新印象笔记帖子的笔记本

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
92 queries in 0.197 seconds, using 23.34MB memory