使用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
- 示例程序:基本的笔记操作
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的文档格式,文档的内容都在标签里面
- 建议有什么需要的格式自己导出一份研究就可以了,这里是扩展阅读
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完成每周工作安排相关推荐
- 美团点评2020校招算法工程师编程题--工作安排--动态规划
题目描述: 小美是团队的负责人,需要为团队制定工作的计划,以帮助团队产出最大的价值. 每周团队都会有两项候选的任务,其中一项为简单任务,一项为复杂任务,两项任务都能在一周内完成.第i周,团队完成简单任 ...
- 学python可以做什么职业-学完Python,能找到什么工作?工资多少?
Python学习结束后找什么工作? Python前景怎么样?当你在学习这门语言的时候,你会不会担心以后找不到一份满意的工作?事实上,人生当中,每一次的学习,最后都会让你通过这项技能,让你遇到适合自已的 ...
- 山东师范大学计算机科学与技术复试,2020年山东师范大学信息科学与工程学院硕士研究生复试工作安排...
为做好2020年硕士生复试工作,根据<山东师范大学2020年硕士研究生复试录取工作办法>要求,现将我院2020年硕士生复试工作安排如下: 一.组织工作 根据学校要求和复试工作需要,学院成立 ...
- [BZOJ1572][Usaco2009 Open]工作安排Job
1572: [Usaco2009 Open]工作安排Job Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1351 Solved: 632 [Sub ...
- 麦肯锡顾问深度工作安排:将工作可视化
工作表安排的三个步骤 凡是善于工作的人,都有一个共通的方法,那就是他们能够有意识或者无意识地使自己的整体工作可视化. 商业系统型的工作安排法: 流程:为了创造价值明确工作的整体流程 分解:将整体流程分 ...
- Science:“每周工作进展汇报”在博士培养中的作用
编译自<Science>2021年12月3日.阅读原文请点击文后的"阅读原文" https://www.science.org/content/article/my-p ...
- 综合布线工作组2008年上半年技术课题工作安排会议通知
中国工程建设标准化协会信息通信专业委员会 建标信通字[2008] 02号 综合布线工作组2008年上半年技术课题工作安排会议通知 各工作组成员 中国工程建设标准化协会信息通信专业委员会综合布线 ...
- 2010年上半年计算机专业技术资格考试工作安排
2010年上半年计算机专业技术资格考试工作安排<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:o ...
- 【BZOJ2245】[SDOI2011]工作安排 拆边费用流
[BZOJ2245][SDOI2011]工作安排 Description 你的公司接到了一批订单.订单要求你的公司提供n类产品,产品被编号为1~n,其中第i类产品共需要Ci件.公司共有m名员工,员工被 ...
最新文章
- 网易实战分享|Docker文件系统实战
- boost::math::relative_difference相关用法的测试程序
- pyecharts第六节、水球图
- c语言 连接哨兵 redis6,Redis哨兵--缓存服务器
- python 图像分析 边框_Python 去除图片纯色边框(qbit)
- ?php echo $this_php如何使用echo输出常量+变量?
- input光标高度问题
- Android 开发 Camera2开发_3_处理预览和拍照偏暗问题
- Fiddler中常用的方法
- 【资料】Shell脚本学习指南
- 回归分析常数项t值没有显著异于零怎么办_线性回归分析思路总结!简单易懂又全面!...
- Intro.js 分步向导插件使用方法
- [UOJ#405/LOJ#2863][IOI2018]组合动作(交互)
- ClassNotFound找不到 redis.clients.jedis.JedisShardInfo
- 什么是SUM函数以及如何在Python,Excel和Mathlab中使用?
- 蓝桥杯 回文日期(Java)
- 图形图像-无中生有Photoshop CS6背景素材技法ps教程 [超多案例]-韦语洋(Lccee)-专题视频课程...
- maven查找依赖的方法
- Fatal message conversion error;message rejected;it will be dropped or routed to a dead letter exchan
- 【Linux】vi和vim编辑器——常用命令大全