An open API service indexing awesome lists of open source software.

https://github.com/zanjie1999/workdayalarmclockgo

工作咩闹钟 使用 Golang 重构的 工作日闹钟 服务端 社畜的一天从美好的音乐开始 每天不同的闹钟铃声 全平台兼容包括Android
https://github.com/zanjie1999/workdayalarmclockgo

alarm-clock golang server workday

Last synced: 2 months ago
JSON representation

工作咩闹钟 使用 Golang 重构的 工作日闹钟 服务端 社畜的一天从美好的音乐开始 每天不同的闹钟铃声 全平台兼容包括Android

Awesome Lists containing this project

README

          

# 使用 Golang 重构的 工作咩闹钟
原项目是 [工作日闹钟](https://github.com/zanjie1999/workdayAlarmClock),从2017年用Python2写出来后,使用Python3重构,现在使用Golang重构,最大的原因是想适配Android

本闹钟可以在设定的时间(支持中国法定节假日),从设定的网抑云歌单中随机抽取多首音乐作为闹钟铃声,可以自定义闹钟时长
另外可以作为网抑云音乐播放器使用,随机播放永不重复,实现除语音助手外的智能音响应有的功能

这是一个服务端程序,交互将通过8080端口的Web服务在浏览器完成,尽量减少ram占用,以便运行在骁龙210的随身WiFi上(包括Android端仅占用47M的Ram),使用蓝牙音响播放闹钟声音

这个程序将解决传统闹钟的几个问题:
1. 在节假日调休的情况下,该响的时候不响不该响的时候响
2. 闹钟铃声千篇一律,天天一样,容易听腻
3. 闹钟时间不够长,声音不够大,容易睡过头
4. 小爱音响断网后闹钟不会响
5. 闹钟随机音乐不能放我喜欢的歌
6. 随机播放重复概率过高
7. 无法设置指定日期的闹钟

## 如何使用
因v13修改了闹钟存储方式来支持同时间多闹钟,以及指定日期闹钟,你可根据当月排班来设置闹钟,因此从低版本更新到v13之后的版本,需要手动删除所有闹钟再更新

Android使用 [App](https://github.com/zanjie1999/workdayAlarmClockAndroid)

其他平台(Windows,Linux)推荐使用 [meMp3Player](https://github.com/zanjie1999/meMp3Player) 作为播放器使用
即这样启动 `workdayAlarmClock 你的播放器路径`
比如 `workdayAlarmClock ./meMp3Player`

或者需要安装sox和curl,或者使用你喜欢的播放器
Linux: `包管理器比如apt或者yum等 install sox curl`
macOS: `brew install sox curl`

Windows随便找个播放器基本都能用,需要播放时阻塞,放完自动退出的那种
Windows:这样启动 `workdayAlarmClock 你的播放器路径`

暂停,音量控制目前仅在Android可用

打开同局域网任意设备的浏览器,访问 `http://你的设备ip地址:8080`
点击 闹钟设置 根据说明进行设置
对浏览器没有要求,ie5即使关闭js也能实现基础的功能
另外有关于指定日期闹钟的设置,你可以使用半角逗号`,`进行分隔,一次性输入多个日期,比如,8月3日和12月11日,就输入`0803,1211`

v18.5开始允许在默认歌单和闹钟歌单id的位置输入流媒体的URL,比如你可以输入一个当地新闻广播的流媒体地址,让每天早上的闹钟播放的是当地的新闻

## 指令
除了直接在shell输入,还可以直接在访问地址后拼接,使用GET请求调用,如 `http://127.0.0.1:8080/1key`
```shell
# 停止播放
stop
# 下一首
next
# 上一首
prev
# 退出
exit
# 一键播放歌单、停止
1key
# 定时停止
stop 分钟数
# 播放歌单id
playlist 7668635210
# 播放歌曲
playmusic 2604307454
# 测试闹钟
testalarm
# 创建文件
touch 文件名
# 删除文件
rm 文件名
# 设置缓存路径 路径为null则关闭,不传则输出当前值
savepath 路径
# 获取ip地址
ip
```

### 关于“上一首”按钮的特殊说明
在没有播放记录时,会播放设置的默认歌单,再按一次则随机播放
在有播放记录时,会播放上一首,再按一次播放设置的默认歌单,再按一次则随机播放
在Android支持多媒体物理按键控制,逻辑相同
其中一说宝宝的鼻子是停止按钮,叮咚play的勿扰按钮短按暂停长按停止

### 天气播报
会在每次闹钟停止后(手动停止或播放完自动停止),播报今天的天气和前一天的温度差,以便决定穿什么衣服
你需要手动在闹钟设置中输入天气代码的框中输入你的区/市,并点击右边的查询按钮,保存设置后尝试点击“测试获取天气”来检查是否能正常使用
因配额资源有限,请勿将我的语音合成api用于其他用途,谢谢合作,否则将会取消这一功能

### 音频缓存
可以在没有网络的时候播放之前播放过的歌曲
设置了缓存目录后,并且重启启动后,可以在 `/music` 对缓存进行浏览
歌单会优先使用网络的,歌曲则会优先播放缓存的,在切换音质后需要清理缓存才能播放目标音质的音频
另外增加了 `/sdcard` 路径,用于访问Android设备的sdcard中的文件

### 全屋同步播放
实现了一个很酷的功能,可以让局域网所有工作咩闹钟设备同时放一样的音乐,也可以叫UDP广播群控
只需要在闹钟设置中想作为主机的设备上勾选 `全屋同步播放主机` 即刻
由于配置不一样的配置的设备处理的速度不一样,所以你可能需要在闹钟设置中配置 `同步偏移`
单位是ms毫秒(1秒=1000毫秒),数字越大,将越早开始播放,数字越小(可以为负数)
说小米垃圾是有原因的,os1系统的k60pro播放音频的速度居然比骁龙625 miui10的红米note4x还慢了710ms

### 协议 咩License
使用此项目视为您已阅读并同意遵守 [此LICENSE](https://github.com/zanjie1999/LICENSE)
Using this project is deemed to indicate that you have read and agreed to abide by [this LICENSE](https://github.com/zanjie1999/LICENSE)