#bot #fm #information #song #source #playing #sound-touch

nightly app npbot

"Now Playing"机器人,用于将歌曲信息发布到各种社交网络

1个稳定版本

使用旧的Rust 2015

1.0.0 2018年3月30日

#11#fm

AGPL-3.0

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

基本步骤如下

  1. src/source模块中添加一个子模块
  2. 在你的新子模块中,添加一个实现Source特质的 数据结构。
  3. (可选) 如果你想在src/main.rs中使用detect_and_register!宏,则在你的数据结构中添加一个.from_env(cli_args: Opt) -> Self静态方法。
  4. src/main.rs中添加必要的CLI参数,并在main中的// Sources行下添加必要的代码来检测和注册新来源

TODO

  • 测试 & CI
  • 使用mdns查找soundtouch主机,回退到环境变量/命令行参数
  • 关于使用多个来源的更好故事?
  • 更多来源
  • 更多汇点

依赖关系

~25–35MB
~623K SLoC