基于python的豆瓣FM(终端命令行界面)
来源:互联网 发布:java中parse什么意思 编辑:程序博客网 时间:2024/06/17 12:16
douban.fm
这个版本的命令行界面是参考了 Node.js版本的douban.fm制作的,向原作者致敬.终端界面设计的非常好看.
感谢Cloverstd的修改,已经支持Mac OS X(>=V0.2.9)
Screenshots
Support
Linux/Mac OS X
Do something cool!
其实Node.js版本已经很好了,功能齐全,但是我发现在我的zsh + tmux环境下颜色竟然显示不出来,感觉很蛋疼.
Installation
$ sudo pip install douban.fm
需要mplayer播放器依赖,如未安装:
Ubuntu:
$ sudo apt-get install mplayer
OS X:
$ brew install mplayer
Usage
在终端下直接输入
$ douban.fm
Login
第一次登陆需要输入账号,密码,程序不会保留密码,而是保存返回的token存储在~/.douban_token.txt,下次登陆无需输入密码.
Keys
支持vim按键
移动 [j] --> 下 [k] --> 上 [g] --> 移到最顶 [G] --> 移到最底音乐 [space] --> 播放 [w] --> 打开歌曲主页 [n] --> 下一首 [r] --> 喜欢/取消喜欢 [b] --> 不再播放 [q] --> 退出 [p] --> 暂停 [l] --> 单曲循环音量(>=V0.2.9) [=] --> 增 [-] --> 减 [m] --> 静音歌词(>=v0.2.9) [o] --> 显示歌词(Bug很多,先别用,没有反应就是没找到歌词) [q] --> 退出歌词
Configuration(>=v0.2.8)
.doubanfm_config保存在了~/.doubanfm_config,根据需要可以修改按键的映射
[key]UP = k # 上DOWN = j # 下TOP = g # 顶BOTTOM = G # 底OPENURL = w # 打开歌曲主页RATE = r # 标记喜欢/取消喜欢NEXT = n # 下一首BYE = b # 不再播放QUIT = q # 退出PAUSE = p # 暂停LOOP = l # 单曲循环MUTE = m # 静音
Done
- 登陆token
- 显示PRO
- cli设计
- 播放,下一首,红心,不再播放
- 进度条(时间)
- 终端高度的自动调整
- pro用户歌曲kbps的选择(pro用户会自动选择192kbps)
- 歌曲结束request(发送歌曲完成)
- config设置
- 调节音量(amixer) + 标题中显示音量
- 歌词
- 歌曲暂停
- 单曲播放
TODO
- 默认频道
- 播放歌曲数 红心数 不再播放数
- 异常处理
BUG
- ~~播放歌曲中有时候会暂停~~
- ~~退出后终端光标会隐藏~~
- ~~.douban_token.txt路径问题~~
- ~~登陆异常处理~~
- ~~静音后播放下一首会取消静音~~
Authors
- Fansion
- Cloverstd
Reference
- Node.js版本的douban.fm
- 豆瓣FM命令行播放器(pyfm)
- 豆瓣电台 API
Log
V0.2.10 滚动歌词,单曲循环,暂停,静音
V0.2.9 支持歌词,支持Mac OS X
V0.2.8 增加config
License (MIT)
Copyright (c) 2014 hackerxu
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- 基于python的豆瓣FM(终端命令行界面)
- 打开终端听豆瓣fm
- 【Python】豆瓣FM API分析
- 自己动手用python写豆瓣FM
- Android实现豆瓣FM的首页效果
- 豆瓣FM的搜歌利器
- Javascript打造豆瓣FM的歌词插件
- python命令行终端下操作界面库(curses,urwid,npyscreen)
- 豆瓣FM-Hacker--豆瓣FM红心兆赫
- 豆瓣FM分析
- 豆瓣FM snap应用
- 基于python的豆瓣“我看过的电影”的爬虫
- 基于Python的豆瓣电影评分查询器
- 直接下载豆瓣fm的全部歌曲py脚本。(json操作)
- 打算写个下载豆瓣fm歌曲的小程序
- 小小的惊喜-archlinux下通过wine安装豆瓣FM
- Android实现了豆瓣FM的首页效果
- 如何为豆瓣FM写一个chrome的歌词插件
- 两个队列实现一个桟
- 基于 AVOS Cloud 的 Android 应用程序快速开发简介
- read 命令详解
- 基于HTML5的网络拓扑图 - 定制状态面板
- 基于NodeJS的前后端分离
- 基于python的豆瓣FM(终端命令行界面)
- Ubuntu实时查看tomcat运行log
- java使用jacob word 转pdf
- centos安装nginx
- Arraylist的elementData修饰关键词transient到底要闹哪样
- 【贪心】【bzoj 2923】: [Poi1998]The lightest language
- 处理bower总是安装不了package的问题
- Java是编译型还是解释型语言
- 复用类