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