使用Python配合Evernote完成每周工作安排
2019獨角獸企業重金招聘Python工程師標準>>>
起因:
近期看Evernote API的時候發現印象筆記對Python非常友好,就試了一下各類操作。
剛好一直覺得用過的那些備忘、代辦軟件功能太亂還不如拿記事本或者短信記。就用印象筆記寫一個,反正擺脫不了印象筆記,就干脆都存在里面。
用過一段時間以后發現備份和檢索功能還不錯,也可以把一些文檔做鏈接放進去。
其實身邊的API都可以通過Python用起來,簡單的利用也會有不錯的效果。
演示用的軟件可以在我的Github,或者360云盤(0fe0)上下載。
演示視頻
我把簡單的演示放在了優酷上,如果對演示感興趣可以看下去。
演示中沒有示范如何安裝evernote的包,pip install evernote一下就好了。
演示主要分為配置Secret Key、使用、配置快捷啟動,具體的文字說明我寫在了后面。
用途
- 該玩具將會將上周的Memo(在Memo筆記本組中)備份到S-Memo筆記本組(如果有的話)
- 用一份空白Memo替代舊Memo
配置
配置Python及程序
- pip install evernote:安裝evernote包
- pip install requests:如需要使用Oauth,安裝requests包
- Memo樣式可以通過修改模板文件content.enex調整
- 存放位置與工作安排的名字可以通過修改PackMemo.py 4-6行配置
配置Secret Key
- 進入印象筆記官網并登陸(其實也可以忽略這一步,但下面的網址鏈接不太穩定)
- 進入印象筆記開發者Token獲取開發者Token
- 將獲取到的開發者Token添加到EvernoteController.py第21行單引號內(->21 DEV_TOKEN = ”)
使用
- python PackMemo.py:將會自動登錄完成日志創建與存儲
- Win+R pm <CR>:Windows系統內配置好快捷啟動后即可使用
配置快捷啟動
- Win+R %systemroot%/system32 <CR>:打開文件夾
- 將PackMemo.bat創建快捷方式并重命名為pm
- 將pm拖入文件夾
程序細節
EvernoteController.py
- 示例程序:基本的筆記操作
- 可以選擇是否開啟本地存儲與Oauth驗證(就是賬號密碼登陸)
- 筆記指定方式通過myfile方法確定為Notebook/Note
- 刪除操作僅在使用開發者Token時可以使用,否則僅能移入已刪除的文件文件夾(API限制)
- 完整版EvernoteControler.py包含其余組件,如果感興趣可以再做研究
Memo.py
- 通過替換將日期周數等內容
- 關于enex的文檔格式,文檔的內容都在標簽里面
- 建議有什么需要的格式自己導出一份研究就可以了,這里是擴展閱讀
PackMemo.bat
- 雖然演示視頻中把快捷方式直接放到了%systemroot%/system32下面,但還是得說,這不是一個好習慣
- 建議確定一個別的文件夾,專門用來放各類快捷啟動,然后把這個文件夾加入環境變量
- 沒準就有人覺得有用呢(攤手)
API
快速入門
- 對于API如果想要有個全面的了解的話,可以移步我的另一篇文章。
- 整個API的框架分為OAuth(使用開發者Token的話直接獲取EvernoteClient即可)和常用方法
- 僅是小應用的話可以不用了解OAuth
- OAuth原意不是通過命令行實現,但還是可以通過一定的方法實現,官方文檔見這里
權限
印象筆記有兩種權限類型,開發者權限和普通權限。
* 開發者權限:沙盒內與使用開發者Token(僅能操作本人賬號)時的權限,可以使用所有的方法
* 普通權限:用戶可以通過輸入賬號密碼和點擊確認給予應用授權,可以使用絕大部分方法,具體操作見Oauth.py
獲得授權后會獲得一個Token,在各種方法中都會使用到
通過這個Token即可獲取EvernoteClient, userStore, noteStore
if SANDBOX:client = EvernoteClient(token=self.token) else:client = EvernoteClient(token=self.token, service_host=SERVICE_HOST) userStore = client.get_user_store() noteStore = client.get_note_store()基本方法
以Function: NoteStore.deleteNote為例演示如何使用API,以下為官方介紹:
首先,由于其為NoteStore類的方法,所以調用的方式為NoteStore.deleteNote(token, guid)
其次,token為上述的開發者Token或者有興趣的話為OAuth獲取到的token
再次,從圖中第七行可以看出,guid的為GUID of the note to delete,下面是Note的介紹
那么,只要獲取到Note,就可以獲得guid。
所以,最后一步,這里牽扯到印象筆記的數據結構,了解即可
* 通過NoteStore.listNotebooks獲取Notebook列表,找到需要的Notebook的guid(和Note的guid不同)
* 通過NoteStore.findNotes設置特定筆記本的NoteFilter獲取Note列表,找到需要的Note
* 調用NoteStore.deleteNote方法即可以生效
值得一提的是,某些操作需要特殊的權限,sandbox中和使用開發者Token時可以使用不代表外部可以使用
結束語
希望讀完這篇文章能對你有幫助,有什么不足之處萬望指正(鞠躬)。
有什么想法或者想要關注我的更新,歡迎來Github上Star或者Fork。
160304
LittleCoder
EOF
轉載于:https://my.oschina.net/littlecodersh/blog/677702
總結
以上是生活随笔為你收集整理的使用Python配合Evernote完成每周工作安排的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenSSH 6.7 发布 开源ssh
- 下一篇: MAC版CRT使用心得