Yang Yubo's Life @ Refactoring

django-notifications

written on Monday, July 23, 2012

GitHub 站内提醒的功能非常简单实用,当有人向你发起 pull request 的时候,登上 GitHub 会收到站内通知,在右上角还会显示未读的通知数目。

通知内容也很简单:某人某物 做了 某事,接着是该通知的 事件描述

这个功能对于现在的在线应用来说属于非缺不可,codinn 当然也不例外。我找了一圈,只有 django-postman 较为符合要求,但它更接近与站内信(比如豆瓣的豆邮),用它来实现提醒功能既不灵活(缺少对 主谓宾结构 的支持),也显笨重。

codinn 已经在用的 django-activity-stream 挺符合要求的,它实现了类似于 GitHub 主谓宾结构 的 Public Activity。站内提醒则相当于 Private Activity,原理都一样。

想来既然没有现成的,也就不能说是 NIH 了,遂抡起袖子自己动手写了 django-notifications

在 PyPI 上的名字是 django-notifications-hq,加 -hq 后缀是因为 django-notifications 已经被先下手了。

表结构参考 django-activity-stream 的实现,增加了两个字段 -- 事件接收者(recipient)和是否已读(readed)。使用也很简单,就 4 个 API:

django-notifications app 放在 GitHub 上,也可以通过 PyPI 用 pip/easy_install 安装

This entry was tagged app, django and notifications

blog comments powered by Disqus