BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / linux / #39094同步于 2008/3/27
Linux机器人发帖

转载-VIM Calendar 插件 与 Google Calendar同步diary的脚本

alias
2008/3/27镜像同步0 回复
发信人: rmrf (嗯), 信区: VIM 标 题: VIM Calendar 插件 与 Google Calendar同步diary的脚本 发信站: 水木社区 (Wed Mar 26 21:02:54 2008), 站内 BLOG文:http://money.eyelu.com/archives/196 不辞职不知道柴米贵,不编程不知道码字累 最近学习python,写了个脚本作为练习。 脚本用途:将VIM Calendar 插件生成的Diary同步到Google Calendar 。 编写动机:一直以来我都用Google Calendar记录每日流水帐,记录每一天都做了什么。以 前工作的时候,这个习惯非常好,尤其是在定期给客户写维护报告的时候。一些细节的琐碎 事情都能借助Google Calendar的搜索功能准确定位时间。缺陷就是要联网的时候才能写, 否则就要临时编辑个文件,时间久了,想要从这些乱七八糟的本地文件里面找到有用的信息 真是痛苦。最近使用了VIM Calendar插件,发现可以写diary,记录流水帐再好不过。缺点 就是检索和查看都比较困难,于是就萌生了同步diary到Google Calendar的想法。 运行平台: 在Debian/Linux下编的,目前还没考虑windows平台。因主要是网络操作,平台 差异倒是挺好解决,过段时间再加吧。 脚本原理: VIM Calendar插件会在用户目录下的diary目录中按照日期的目录结构生成日记文本,如: /home/money/diary/2008/3/21.cal,每一个文件代表一天的日记。脚本会扫描 /home/money/diary目录下的文件,并生成/home/money/diary/vimlog.txt文件作为记录, 随后依次上传每个文件的内容到Google Calendar。当然事先要有一个Google Calendar的帐 号提供给脚本。为了不与Google Calendar默认的日历冲突(Primary),脚本会在自动创建一 个Title为”VIM”的子日历,随后所有的操作都是在此子日历上起作用。如上传diary和删 除diary。 上传diary的过程中使用的Google Gdata的python API。 脚本运行: ./diaryvgc.py –user=username –pw=password –dir=/home/money/diary [-d] -h – help –user 指定Google Calendar Account的用户名,不必加后面的@gmail.com后缀 –password 指定Google Calendar Account用户的密码,没必要加引号 –dir 指定diary存放的目录,因为就这一个参数,脚本就没有使用配置文件了。并且配置 文件存放Google Account的密码也并不安全。 -d 这个是可选参数,如果不使用,则同步diary到Google Calendar。如果指定了-d 则将 Google Calendar的VIM子日历中条目全部删除。 -h 或 –help 打印usage 上传diary: ./diaryvgc.py –user=username –pw=password –dir=/home/money/diary 删除Google Calendar中 VIM子Calendar中的所有条目: ./diaryvgc.py –user=username –pw=password –dir=/home/money/diary -d 说明: 1.支持增量同步。第一次运行时将所有diary同步到Google Calendar,随后只检查新增的 diary。这个功能依靠文件vimlog.txt中的记录实现。 2.需要Google Gdata Pytho API支持。现已经把脚本所需的package一起放到程序里面了。 只要在Linux下有python(应该都有吧),就没问题了。 3.diary以’All Day’的形式加入到Google Calendar中。避免了Google Calendar自动分析 diary,造成上传日记内容不完整的情况。 4.因未加入同步控制,所以启动后会将diary全部upload到Google Calendar。如果你的 diary很多的话,要耐心,因为它的速度依赖于网络。 后期计划: 1, 增加windows平台支持 2, 增加Diary修改的检测,修改后的diary可以同步到Google Calendar。 3, 增加同步控制 脚本下载: http://eyelu.com/data/diaryvgc.tar.gz 相关资源: VIM Calendar 插件下载: http://www.vim.org/scripts/script.php?script_id=52 Google Gdata API : http://code.google.com/apis/gdata/
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。