别忘了结婚纪念日
TODO: broken. need update
这个脚本干嘛的?
这个脚本就是用来在某些重要的日子之前提醒我们, 有点类似于记忆日网站 (update: 该网站已经倒闭)。 这个商业网站其实挺好,但是我总有一点不放心,因为它不支持批量导出导入。 自己写一个脚本也很快。
如何使用?
提醒方式
默认提醒方式就是运行程序后,打印临近的重要日子。
可以在~/.specialdayrc
定义自己想要的提醒方式, 例如邮件:
$$code
email = "echo '$date: $msg_remind' | mutt lwlg -s '$date: $msg_remind'"
$$/code
其中%date
和%msg_remind
会被替换成相应的内容。
注意以上命令需要命令行可执行无误。我的mutt已经配置好了,可以通过这种方式发信。
总之,提醒方式很开放,只要能在命令行调用即可。
- 弹出窗口? 记不得什么命令了。
- gtalk/msn 机器人
- todotxt
- ...
或者利用它默认的print功能,在conky中显示出来,也不失为一个好方法。
提醒内容
需要在~/.specialday_data
中定义各种重要日期:
$$code
% 年月日,只在今年提醒。
2009-10-1 -10 print 60周年国庆
% 没有指定年份,表示每年都会提醒 % -2|-1|0 表示分别提前2天, 提前1天,以及当天进行提醒 % print|email 表示同时用print以及mail进行提醒, 除了print之外,其他各种方式需要自己定义 05-04 -2|-1|0 print|email 青年节
% L08-15 表示阴历8月15日 L08-15 -1|0 print 中秋节 $$/code
运行
记得用cron运行:
$$code
1 0 * * * SpecialDay.py
$$/code
具体查看SpecialDay.py -h
即可。
如果提醒方式是print的话,也可以利用conky来提醒。
依赖
需要pyzh@google code中的lunarcalendar.py。 我偷懒就把这个文件放在同一个目录中了,要是安装pyzh到系统中的话,就可能要修改代码。
代码
待做事宜
- ~~(调试调用bash命令。)~~ 经我测试,email = "..."可以成功运行,但是各人的情况不一样,也许需要先调试一下。
- ~~(整理一个countdown的版本出来。)~~ 搞定,例如 “
2009-08-21 * print 测试
”每次运行都会在终端输出还有 xx天是:测试. 配合conky使用,其乐无穷。 - ~~(算天数的地方有问题,到了年底就不准确了,需要修改)~~ 如果是每年都运行的话,我把前一年和后一年的日期也都加入比较,这样就避免错过了。不过尚未测试。
- 感觉还不是很灵活. 需要重新改写一次. 最好格式能和crontab相同.
- 要能计算今年生日的时候是几岁了.
链接
- 记忆日
- pyzh@google code, 阴阳历转换, 等等