简单的Deluge自动关机插件
Deluge是一种Bittorrent客户端,使用 Python 和 GTK+ 写成,可以很好的在 GNOME 及 XFCE 这两个桌面中运行。linux下的BT工具很多,我用过的有bittorrent, Azureus和Transmission。几个工具比较下来,还是deluge好用。Bittorrent和transmission对中文支持不好,经常乱码。而Azureus是用java写的,很消耗内存。配置也麻烦些。
Deluge功能很多,由插件形式提供。但是唯独没有一个插件提供这样的常用功能:下载完毕后自动关机。相信这个功能在大部分BT工具中都有。于是我参考Deluge插件Torrent Notification源码,用python写了个简单的自动关机插件。
先介绍下思路:
1。程序的核心思路就是监测torrent文件是否完成,如果完成则关机。
2。因为deluge的核心功能libtorrent是用c++写的,同时提供Python接口。这样我们就可以在python程序利 用这些接口,来判断torrent文件是否完成。Deluge运行中,不间断的对外发出event队列,只要我们在程 序捕获“下载完成”event即可。
3。如何关机?因为我们的日常用户一般都不是root,所以象类似shutdown, poweroff这样的超级用户命令。 尽管可以加上sudo让poweroff命令运行,但过于勉强。想想,普通用户都没有权限关机,岂不是很郁闷??系统肯定是存在电源管理模块的,在linux/GNOME对应的gnome-power-manager。该damon 提供了一个完整的电源管理方案。所以,只要程序可以和gnome-power-manage通信,就可以实现下载完毕自动关机功能。
4。linux下的桌面程序间的通信,甚至桌面程序与操作系统的通信,最简单的就是Dbus。gnome-power-manage提供了Dbus Python API,让普通用户可以控制系统电源。关于Dbus,具体参见
http://www.freedesktop.org/wiki/Software/dbus
Deluge自动关机插件启用方法:
1. 下载AutoShutdown.zip, 解压缩后会有一个AutoShutdown目录,里面只有一个python文件__init__.py
将这个目录移动至deluge的插件目录下。在Fedora下,插件目录位于/usr/share/deluge/plugins
2。运行Deluge,打开“编辑->插件”,在插件列表中会出现Auto Shutdown插件,把启用选项勾上。然后点击下面该插件的“首选项”,会跳出新的选择窗口。用户可以选择下载完毕后让系统关机还是休眠。截图:
Notes:
1。 gnome-power-manager必须运行。默认情况,这个后台进程在开机时运行。可以检查下
[ray@localhost ~]$ ps -ef | grep power
ray 4974 1 0 Jun11 ? 00:00:00 /usr/bin/gnome-power-manager
ray 5518 5275 0 00:04 pts/2 00:00:00 grep power
2。 目前插件功能很差,只要有其中一个torrent任务完成,系统就会关机。
参考文档:
1。 GNOME Power Management Specification
http://people.freedesktop.org/~hughsient/temp/dbus-interface.html
2。 使用 D-BUS 连接桌面应用程序
http://www.ibm.com/developerworks/cn/linux/l-dbus.html
文件:
AutoShutdown.zip
大小:
2KB
下载:
下载
6月13号: 已经更新至Version0.2
http://blog.chinaunix.net/u2/68938/showart_1000724.html