美文网首页学习能力机器学习还不是为了工作嘛
使用Python配合Evernote完成每周工作安排

使用Python配合Evernote完成每周工作安排

作者: LittleCoder | 来源:发表于2016-03-30 12:30 被阅读2249次
    标题图

    起因:

    近期看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

    • 示例程序:基本的笔记操作
    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()
    
    • 可以选择是否开启本地存储与Oauth验证(就是账号密码登陆)
    • 笔记指定方式通过myfile方法确定为Notebook/Note
    • 删除操作仅在使用开发者Token时可以使用,否则仅能移入已删除的文件文件夹(API限制)
    • 完整版EvernoteControler.py包含其余组件,如果感兴趣可以再做研究

    Memo.py

    • 通过替换将日期周数等内容
    • 关于enex的文档格式,文档的内容都在<en-note>标签里面
    • 建议有什么需要的格式自己导出一份研究就可以了,这里是扩展阅读

    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,以下为官方介绍:

    Function: NoteStore.deleteNote

    首先,由于其为NoteStore类的方法,所以调用的方式为NoteStore.deleteNote(token, guid)

    其次,token为上述的开发者Token或者有兴趣的话为OAuth获取到的token

    再次,从图中第七行可以看出,guid的为GUID of the note to delete,下面是Note的介绍

    Note

    那么,只要获取到Note,就可以获得guid。

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

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

    结束语

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

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

    160304

    LittleCoder

    EOF

    相关文章

      网友评论

      本文标题:使用Python配合Evernote完成每周工作安排

      本文链接:https://www.haomeiwen.com/subject/zeaslttx.html