Python 小工具配合 Evernote 完成每周工作安排

2016-05-17 20:08:24 +08:00
 NxnXgpuPSfsIT

起因:

近期看 Evernote API 的时候发现印象笔记对 Python 非常友好,就试了一下各类操作。

刚好一直觉得用过的那些备忘、代办软件功能太乱还不如拿记事本或者短信记。就用印象笔记写一个,反正摆脱不了印象笔记,就干脆都存在里面。

用过一段时间以后发现备份和检索功能还不错,也可以把一些文档做链接放进去。

其实身边的 API 都可以通过 Python 用起来,简单的利用也会有不错的效果。

有什么想法或者问题,欢迎和分享!

演示用的软件可以在我的Github,或者360 云盘(0fe0)上下载。

演示视频

我把简单的演示放在了优酷上,如果对演示感兴趣可以看下去。

演示中没有示范如何安装 evernote 的包,pip install evernote一下就好了。

演示主要分为配置 Secret Key 、使用、配置快捷启动,具体的文字说明我写在了后面。

用途

配置

配置 Python 及程序

配置 Secret Key

使用

配置快捷启动

程序细节

EvernoteController.py

e = EvernoteController()
e.create_notebook('Notebook1')
e.create_note('Hello', '<en-note>Hello, world!</en-note>', 'Notebook1')
e.create_notebook('Notebook2')
e.show_notes()
e.move_note('Notebook1/Hello', 'Notebook2')
e.show_notes()
e.delete_note('Notebook2/Hello')
# deleting notebook can only be available when you use developer token for your own evernote
e.delete_notebook('Notebook1')
e.delete_notebook('Notebook2')
e.show_notes()

Memo.py

PackMemo.bat

API

快速入门

权限

印象笔记有两种权限类型,开发者权限和普通权限。

获得授权后会获得一个 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 。

所以,最后一步,这里牵扯到印象笔记的数据结构,了解即可

值得一提的是,某些操作需要特殊的权限, sandbox 中和使用开发者 Token 时可以使用不代表外部可以使用

结束语

希望读完这篇文章能对你有帮助,有什么不足之处万望指正(鞠躬)。

有什么想法或者想要关注我的更新,欢迎来GithubStar或者Fork

160517

LittleCoder

EOF

2903 次点击
所在节点    Python
2 条回复
mongost3t
2016-05-18 18:27:38 +08:00
evernote 包不支持 python3 ,创建 note 还得手动加 en-note 的 tag ,一大堆 thrift ,不知道友好在哪……

倒是挺稳定,申请 production api 也会给批
NxnXgpuPSfsIT
2016-05-18 21:12:31 +08:00
@mongost3t
py3 的 sdk 可以用这个 https://github.com/evernote/evernote-sdk-python3 ,我用下来基础操作没什么问题,可以一试。
说友好是因为入门的介绍和例程都给的很到位,过渡到 api 表完全没有瓶颈。
<en-note>是别人的文件内容嘛,为了区分自家的标记和普通的标记。
多了一个<en-note>我感觉还是好处多一点,就最常见的,文章里的附件、图片什么的只要写<en-media>就行。
看来是同道中人,之后开发可以多交流:)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/279339

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX