1个稳定版本
使用旧的Rust 2015
| 1.0.0 | 2018年3月30日 |
|---|
#11 在 #fm
25KB
697 行
NowPlaying机器人
一个可以从多个来源获取信息并发送到多个目的地的“nowplaying”机器人
来源
目前实现的支持来源有
- Bose SoundTouch扬声器
- Last.fm
目标
目前实现的支持目标有
- Mastodon
运行
要运行,你需要提供一些东西。你需要一个YouTube数据API密钥,所以去谷歌开发者控制台获取一个。可以通过YOUTUBE_KEY环境变量提供给程序。为了使用其中一个来源,你还需要提供一些关于它的信息。对于last.fm来源,获取一个last.fm API密钥并将其分配给LASTFM_API_KEY环境变量,同时将你的last.fm用户名放在LASTFM_USERNAME环境变量中。SoundTouch来源只需要你的SoundTouch扬声器的计算机名,放在SOUNDTOUCH_HOST环境变量中。
环境变量可以在命令行或.env文件中设置。
程序启动时,它会尝试在creds.json文件中找到Mastodon访问令牌。如果该文件不存在,程序会提示你如何提供权限以将信息发布到你的Mastodon账户。
添加新来源
添加新来源并不困难,这个提交显示了一个很好的例子
https://gitlab.com/pwoolcoc/npbot/commit/4eddf89266c71677511e2cba86a69c8fe60db3ec
基本步骤如下
- 在
src/source模块中添加一个子模块 - 在你的新子模块中,添加一个实现
Source特质的 数据结构。 - (可选) 如果你想在
src/main.rs中使用detect_and_register!宏,则在你的数据结构中添加一个.from_env(cli_args: Opt) -> Self静态方法。 - 在
src/main.rs中添加必要的CLI参数,并在main中的// Sources行下添加必要的代码来检测和注册新来源
TODO
- 测试 & CI
- 使用mdns查找soundtouch主机,回退到环境变量/命令行参数
- 关于使用多个来源的更好故事?
- 更多来源
- 更多汇点
依赖关系
~25–35MB
~623K SLoC