跳到主内容

别忘了结婚纪念日

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 机器人
  • email
  • 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 表示阴历815日 L08-15 -1|0 print 中秋节 $$/code

运行

记得用cron运行: $$code 1 0 * * * SpecialDay.py $$/code 具体查看SpecialDay.py -h即可。

如果提醒方式是print的话,也可以利用conky来提醒。

依赖

需要pyzh@google code中的lunarcalendar.py。 我偷懒就把这个文件放在同一个目录中了,要是安装pyzh到系统中的话,就可能要修改代码。

代码

待做事宜

  1. ~~(调试调用bash命令。)~~ 经我测试,email = "..."可以成功运行,但是各人的情况不一样,也许需要先调试一下。
  2. ~~(整理一个countdown的版本出来。)~~ 搞定,例如 “2009-08-21 * print 测试”每次运行都会在终端输出还有 xx天是:测试. 配合conky使用,其乐无穷。
  3. ~~(算天数的地方有问题,到了年底就不准确了,需要修改)~~ 如果是每年都运行的话,我把前一年和后一年的日期也都加入比较,这样就避免错过了。不过尚未测试。
  4. 感觉还不是很灵活. 需要重新改写一次. 最好格式能和crontab相同.
  5. 要能计算今年生日的时候是几岁了.

链接