Exaile 豆瓣电台插件 0.0.13

近来工作甚忙,一直没有精力来更新这个插件。加之exaile被archlinux清到了aur仓库,项目的前景亦是堪忧。恰好有两位热心网友@JoveYu和@watermelonlh在github上提出愿意帮助维护这个项目。两位都是很好的贡献者,用了一周左右的时间,居然看遍了我乱糟糟的代码,更看遍了Exaile更乱糟糟的代码。说干就干,还真让这个插件在Exaile 0.3.3健健康康地运行起来。而这段时间我没能给两位什么具体的帮助,着实惭愧。

不管怎样,现在我们又拥有了和原先一模一样的功能:

你可以在github找到这个项目并下载最新的版本:

https://github.com/sunng87/exaile-doubanfm-plugin

同时,适用于GNOME 3.6的扩展也已经在审核中了,一旦成功,根据gnome-shell据说最新的自动更新功能,已经安装的用户可以直接更新的最新版本。

安装Exaile豆瓣电台插件及Gnome-Shell扩展

介绍一下新版本的Exaile豆瓣电台插件和新的GNOME-Shell扩展的安装。

下载

从github上下载相应的版本:

$ wget --no-check-certificate https://github.com/sunng87/exaile-doubanfm-plugin/zipball/0.0.10-dbus
$ wget --no-check-certificate https://github.com/sunng87/exaile-doubanfm-gnome-shell-extension/zipball/0.0.1
$ ls
sunng87-exaile-doubanfm-gnome-shell-extension-0.0.1-0-g5cc29c6.zip
sunng87-exaile-doubanfm-plugin-0.0.10-dbus-0-g90f7175.zip

解压安装

如果你已经安装过exaile豆瓣电台插件,可以先删除旧版本:

$ rm -rf ~/.local/share/exaile/plugins/doubanfm

解压缩下载的文件:

$ unzip sunng87-exaile-doubanfm-plugin-0.0.10-dbus-0-g90f7175.zip
$ unzip sunng87-exaile-doubanfm-gnome-shell-extension-0.0.1-0-g5cc29c6.zip

移动到指定的目录:

$ mv sunng87-exaile-doubanfm-plugin-90f7175/ ~/.local/share/exaile/plugins/doubanfm
$ mv sunng87-exaile-doubanfm-gnome-shell-extension-5cc29c6/ ~/.local/share/gnome-shell/extensions/exaile-doubanfm-gnome-shell-extension

配置

启动Exaile,通过菜单“编辑->首选项->插件”,激活doubanfm,禁用lastfm covers。如图设置插件:

重启GNOME-Shell,按下alt+f2,输入r,回车。

使用

启动exaile,可以通过文件菜单打开豆瓣电台频道。可以通过ctrl+d或者视图菜单切换到豆瓣电台视图:

当然也可以通过gnome-shell扩展的菜单控制豆瓣电台的播放。

GNOME-Shell Extension for Exaile DoubanFM Plugin

从有这个动机到基本可用,花了整整一天的时间。现在可以通过GNOME-Shell的一个小菜单从外部控制Exaile豆瓣电台了。它的意思就是说如果你使用Gnome-Shell,你可以把Exaile界面扔到一个你不想看到的地方去,比如第n+1个workspace。然后通过左上角的菜单来控制豆瓣电台的播放。见多识广的你不会对此感到太惊奇,其实它和Ubuntu上的Sound Menu Indicator类似,不过是专门给豆瓣电台设计的。
Exaile with doubanfm plugin

要实现这个功能,需要播放器通过dbus来expose一些接口供外部程序调用,它和Sound Menu是一样的,通过dbus来解耦。开发起来比较困难的是目前GNOME-Shell的API还不成熟,还没有文档,传统的javascript object inspect方法似乎在这个mozjs的环境里也不能用,所以实在是无从知道一些API。更不要提通过gjs来调用dbus了。网上有一些文档起了很大的作用,如果你也感兴趣,这些文章是:

支持dbus的exaile-doubanfm-plugin会在stable之后合并到主干供大家使用。现在和gjs一样,它的API也不稳定,所以放在分支中:
https://github.com/sunng87/exaile-doubanfm-plugin/tree/dbus

gnome-shell extension的代码现在也放在github上(其实还不成熟的东西放到bitbucket比较好的)。有兴趣可以了解:
https://github.com/sunng87/exaile-doubanfm-gnome-shell-extension

以上都是unstable,仅供吊胃口之用。