10 个版本
0.4.9 | 2019 年 12 月 2 日 |
---|---|
0.4.8 | 2019 年 12 月 1 日 |
0.4.6 | 2019 年 11 月 8 日 |
0.4.5 | 2019 年 10 月 17 日 |
#1 in #推送
每月 28 次下载
27KB
380 行
RQPush
辅助将通知推送到 RQueue 的库。
RQPush 概述
RQPush 仅作为一个将通知推送到 RQueue 的库有用。为此,它提供了以下功能
- 支持 Handlebar 模板的通知构建
- 计算每个通知的 sha256 哈希值,可选地与共享密钥混合
- (@TODO) 通过 SRV 记录将通知路由到适当的队列
通知概述
通知需要以下三个字段
app
: 应用程序名称title
: 通知的标题,例如用作电子邮件主题short_text
: 通知正文
以下字段也可以定义
url
: 即,生成通知的项目 URL 或查看更多信息的相关 URLtagline
: 生成通知的项目的描述category
: 允许对通知进行任意分类,主要用于过滤和路由lang
: 两位字母的语言代码,默认为 "en"short_text_template
: 允许 Handlebar 变量替换,例如{{foo}}
short_html
: short_text 的 HTML 版本short_html_template
: 允许 Handlebar 变量替换并将内容包裹在适当的 HTML 标签中long_text
: short_text 的可选扩展版本long_html_template
: 允许 Handlebar 变量替换并将内容包裹在适当的 HTML 标签中values
: 用于 Handlebars 风格模板化的键值对
与通知一起工作
创建通知的方式如下
use rqpush::Notification;
let mut notification: Notification = Notification::init("app name", "title", "short text");
这足以生成一个基本的通知,但是还可以进行额外的定制。例如,为了在前面示例中创建的通知上设置项目 URL
notification.set_title("https://github.com/jeremyandrews/rqpush");
最后,可以通过以下方式发送通知
notification.send("127.0.0.1:8000", 42, 0, None);
在这个例子中,我们将通知发送到本地主机的8000端口,优先级为42。我们没有设置TTL,因此通知或共享密钥没有限制。
Netgrasp 示例
以下示例展示了使用Netgrasp发送通知的真实世界示例。
use rqpush::Notification;
let mut notification: Notification = Notification::init("Netgrasp", "[netgrasp] new device: {{device}}", "A new device joined your network: {{device}}");
notification.set_category("first_seen_device");
@待完成:完成
{
"app": "Netgrasp",
"category": "first_seen_device",
"lang": "en",
"title": "[netgrasp] new device: iPhone",
"short_text": "A new device joined your network: iPhone",
"short_html": "<P>A new device joined your network: <EM>iPhone</EM></P>",
"long_text": "A new device joined your network:
* iPhone
* ip: 10.202.14.37 [ff:ff:ff:ff:ff:ff]
* previously seen: never
* first seen: now
In the past 24 hours this device talked to 1 device:
* Gateway: 10.202.14.1
Email generated by Netgrasp passive network observation tool.",
"long_html": "<P><UL>
<LI>iPhone</LI>
<LI>ip: 10.202.14.37 [ff:ff:ff:ff:ff:ff]</LI>
<LI>previously seen: never</LI>
<LI>first seen: now</LI>
</UL>
In the past 24 hours this device talked to 1 device:
<UL>
<LI>Gateway: 10.202.14.1</LI>
</UL></P>
<DIV ID="footer">
<P><SMALL><EM>Email generated by Netgrasp passive network observation tool.</EM></SMALL></P>
</DIV>",
}
依赖项
~22MB
~481K SLoC