用go写了个虾米同步lastfm的小工具。
原理特别简单,就是去爬虾米的最近播放页面,拿到的歌曲信息去调lastfm的API。
之前用的网页版的某个同步工具,会发生重复同步记录的问题,我也解决掉了。lastfm是有针对时间戳进行判重的,所以定时爬网页,并把计算的时间归整到分钟就好。
现在我自己能正常使用,但是自测时授权获得的key是不能用的,不知道是不是我的账号给同一个apikey授权太多次的原因,但我重新申请了一个apikey还是不能用。目前也找不到有人帮我测试orz,看来是没什么需求orz
这个小项目学习了些什么呢?
- goroutine
- channel
- 怎么用channel停止goroutine
- 怎么用键盘某些键停止goroutine
- 怎样定时trigger goroutine
- 某个很好用的爬虫包
- test (当然我并没有cover全部
- 怎么解析json
- 怎么解析xml(结果没有用xml的返回结果了
- 怎么读写json配置(没再用了
- 怎么读写toml配置,某个好用的包
- 怎么log输出到某文件
- net/url 解析url,拼query等
- net/http get、post请求
好啦,心头大事解决,终于可以正常scrobble,这几天一直在播放虾米收藏的专辑,把喜欢的音乐先同步过去。
TODO事项里,本来是要同步收藏的歌曲到lastfm的love的,但那个收藏页面访问不到,看来只好作罢。
MusicBrainz,昨天研究了一下,倒是可以拿到Key,但我怀疑官网那个服务器不能经常拿来访问,看起来是鼓励自己搭服务器的,我才不要啊orz
如果能解决正常退出进程,也许就不用前台跑,而是放在后台进程里跑了。唔,抽空学习慢慢来吧。
如果有需求并有兴趣帮我测一测授权问题的,请联系我,非常感谢!