HadouRex
HadouRex copied to clipboard
douban.fm CLI client in Haskell. You might be interested in https://github.com/rnons/lord
库
doubanfm.hs是doubanfm api的haskell封装。目前还不具备登录功能。
cd doubanfm.hs
cabal install
播放器
HadouRex是doubanfm的CLI客户端,后端调用mpg123进行播放。因此,除了cabal install还需要另外安装mpg123。
HadouRex的代码参考了hmp3和exaile-doubanfm-plugin。
安装
cd HadouRex
cabal install
名为 dourex 的可执行文件会被安装到 .~/.cabal/bin 。
选项
dourex dourex listen [cid/artist] dourex search keywords dourex hot dourex trending dourex mark cid dourex unmark cid dourex marks
dourex的选项模仿了包管理器。用dourex hot和dourex trending查看热门和上升最快的兆赫。用dourex search搜索兆赫。
注意: dourex listen 后面接的参数,既可以是电台id,也可以是歌手/乐队名。如
dourex listen 1002316
dourex listen "sigur ros"
dourex播放时,可以按h键查看快捷键。
几个可以改进的地方
- 增加登录功能,可以参考fmd
- 作为一种练习,用aeson代替json库进行JSON的解析。aeson的口碑似乎比较好
- 作为一种练习,用http-conduit代替HTTP进行http请求
- 用[mpd]代替mpg123进行音乐播放
- 用
putMVar和getMVar机制,代替mpg123wait函数,可以参考jinkell - 增加歌词,可以考虑geci.me
- 用optparse-applicative进行选项(listen,hot等)的解析。
这几个方面我或多或少知道怎么去实现,不过暂时没有时间去做。
有兴趣的同学可以进行尝试,重要的是有兴趣,不会的地方可以找我探讨(irc #haskell-cn)。
或者如果你想到其它可以改进的地方,也欢迎告诉我。