折腾:
【未解决】Python处理发布印象笔记帖子到WordPress后的部分细节优化
期间,调试时发现:
每次想要调试单个帖子时,
只能先去调试同步:processNoteCallback
调试完毕后,停止调试,把evernote的process从True改为False,再去调试:uploadNoteCallback
即对于目前的帖子:

没法对于单个帖子,直接先sync后再upload,不太方便。
所以此处,打算去加上调试配置,允许2种模式:
- 批量模式
- 对于1_ToProcess目录先全部批量的sync
- 再针对于2_ToUpload全部批量的upload
- 单个帖子模式
- 对于1_ToProcess目录的单个帖子,先sync后(根据配置也会移动到2_ToUpload),再upload该帖子
- 再对于2_ToUpload中的帖子,去upload
去改造代码
先定义好2种模式:
1 2 3 4 5 6 7 8 9 10 11 | from enum import Enum class ProcessMode(Enum): SINGLE = 1 # for single note: sync+upload BATCH = 2 # for process folder, batch sync; for upload folder, batch upload gCfg = { "mode" : ProcessMode.SINGLE, "evernote" : { 。。。 |
然后去改造逻辑
EvernoteToWordpress.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | def processAndUploadCallback(curNote): # 1. sync processNoteCallback(curNote) # 2. upload noteDetail = gEvernote.getNoteDetail(curNote.guid) uploadNoteCallback(noteDetail) def EvernoteToWordpress(): """Process evernote note into wordpress Args: Returns: Raises: """ global gCfg # sync if gCfg[ "evernote" ][ "process" ][ "enable" ]: toProcessNotebook = gCfg[ "evernote" ][ "process" ][ "notebook" ] toProcessNotebookGuid = toProcessNotebook[ "guid" ] if gCfg[ "mode" ] = = ProcessMode.SINGLE: processSingleNotebook(toProcessNotebookGuid, processAndUploadCallback) else : processSingleNotebook(toProcessNotebookGuid, processNoteCallback) # upload if gCfg[ "evernote" ][ "upload" ][ "enable" ]: toUploadNotebook = gCfg[ "evernote" ][ "upload" ][ "notebook" ] toUploadNotebookGuid = toUploadNotebook[ "guid" ] processSingleNotebook(toUploadNotebookGuid, uploadNoteCallback) |
去调试看看
是可以的:

把帖子:
【已解决】水之道苏州清源华衍水务关注公众号和绑定户号
实现了我们的效果:
- 从1_ToProcess sync到了2_ToUpload
- 再从2_ToUpload upload到了3_Published
即可。
【总结】
此处最后代码是:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | SINGLE = 1 # for single note: sync+upload BATCH = 2 # for process folder, batch sync; for upload folder, batch upload gCfg = { "mode" : ProcessMode.SINGLE, 。。。 def EvernoteToWordpress(): 。。。 if gCfg[ "evernote" ][ "process" ][ "enable" ]: toProcessNotebook = gCfg[ "evernote" ][ "process" ][ "notebook" ] toProcessNotebookGuid = toProcessNotebook[ "guid" ] if gCfg[ "mode" ] = = ProcessMode.SINGLE: processSingleNotebook(toProcessNotebookGuid, processAndUploadCallback) else : processSingleNotebook(toProcessNotebookGuid, processNoteCallback) # upload if gCfg[ "evernote" ][ "upload" ][ "enable" ]: toUploadNotebook = gCfg[ "evernote" ][ "upload" ][ "notebook" ] toUploadNotebookGuid = toUploadNotebook[ "guid" ] processSingleNotebook(toUploadNotebookGuid, uploadNoteCallback) |
实现了:
当single模式时,处理1_ToProcess的帖子,是一次性的 sync+upload的效果。