#push-notification #notifications #notification-service #push #pushover #messaging

bin+lib po

用于 Pushover 通知服务的 Rust API 和命令行通知推送器

7 个版本

使用旧的 Rust 2015

0.1.4 2015 年 5 月 14 日
0.1.3 2015 年 4 月 5 日
0.1.2 2015 年 3 月 26 日
0.0.2 2015 年 3 月 15 日

#6 in #push-notification

每月 24 次下载

BSD-2-Clause

21KB
398

po

po 是一个第三方(不与 Superblock, LLC 合作)的 Rust API 和命令行通知推送器,用于 Pushover 推送通知服务。

libpo,Rust API,安全地包装 Pushover REST API,并尝试处理所有边缘情况和错误条件,以便可靠地向任何 Pushover 客户端设备(iOS、Android、桌面、Open Client)发送推送消息。它还支持将 Pushover 无法处理的过长消息体作为补充 URL 与通知一起发送。

po 是一个使用 libpo 提供多平台、POSIX 风格命令行界面的实用程序,用于发送推送通知。它公开了 libpo 的所有功能,并支持 API 令牌和用户密钥存储。它可以接收命令行参数作为消息体输入,或从标准输入接收。

编译

您需要 libcurl;其他所有内容都由 Cargo 拉取。运行 cargo build 编译 libpo 库和 po 命令行推送器;它们将分别位于 target/debug 子目录中。运行 cargo build --release 编译每个的优化版本,它们最终将位于 target/release。如果需要,将 po 复制到您的路径中的某个位置。

使用 po

首先,运行 po --setup 以获取有关如何存储 Pushover API 令牌和用户密钥以供命令行客户端使用的说明。

推送一个简单的消息,其标题设置为发送计算机的计算机名

po--标题 `hostname`"你好"

执行相同操作,但消息体来自标准输入

echo 你好|po--标题 `hostname`

推送 ls -la 的输出,并在超出 Pushover 的最大长度(1024 个字符)时将其作为 Gist 链接

ls-la|po--gist

使用 libpo

po = "*" 添加到项目 Cargo.toml 的 [dependencies] 部分。

使用 po::send_basic 通过API令牌、用户密钥和消息正文字符串发送基本消息。po::send 支持更复杂的消息,并带有可选参数,而 po::send_gist 则将每条消息的全文发布到GitHub Gist,并将其作为补充URL链接(如果消息长度超过Pushover的最大长度,则很有用)。

为了更灵活(如果你有多个参数,使用起来也更简单)的API,请使用 po::push。此函数接受代表API令牌、用户密钥和消息正文字符串的字符串,就像 po::send_* 系列函数一样,但其最后一个参数是一个表示库支持的每个可选参数的 po::Parameters 类型数组。

libpo 还公开了一个 po::gist 函数,该函数可以将字符串上传到GitHub Gist,并可选地添加标题。

待办事项

  • 更完整的错误处理
  • 使紧急优先级消息真正起作用
  • 验证存储的API令牌和用户密钥
  • 如果遇到暂时性错误,重试发送通知
  • 支持Gist的Markdown输出
  • 通过守护进程化异步发送 po
  • 更多的测试

在Rust功能稳定后进行

  • 使用tee特性和管道输入到输出
  • 重新添加适当的退出状态
  • 改进配置文件读写错误报告
  • 更好的错误处理以创建配置文件/目录
  • 实际上使用语义版本号作为依赖,它们离开0..

依赖关系

~12–21MB
~354K SLoC