用 fortune 的输出作为 pidgin 的状态显示

很久没有写技术贴了,惭愧和忏悔中。。。
我的 python 很烂,大家凑活看吧,这个程序算是我写的第一个实用的而不是作为练习的 python 程序了。
参考了这个文档:http://developer.pidgin.im/wiki/DbusHowto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/env python
 
import os, sys, dbus, subprocess, time
 
icon = u'\u27a9 '
fortune = "fortune"
fortune_parameters = "-s"
sleep_time=600
 
bus = dbus.SessionBus()
obj = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface")
 
def pidgin_status(message):
	old_status = purple.PurpleSavedstatusGetCurrent()
	status_type = purple.PurpleSavedstatusGetType(old_status)
	new_status = purple.PurpleSavedstatusNew("", status_type)
	purple.PurpleSavedstatusSetMessage(new_status, fortune + icon + message)
	purple.PurpleSavedstatusActivate(new_status)
 
def fortune_status(fortune_parameters):
    message = subprocess.Popen(fortune + ' ' + fortune_parameters, stdout=subprocess.PIPE, shell=True).stdout.read().rstrip()
    pidgin_status(message)	
 
try:
    fortune_parameters = sys.argv[1]
except:
    fortune_status(fortune_parameters)
 
while True:
    fortune_status(fortune_parameters)
    time.sleep(sleep_time)

This entry was posted on Friday, August 7th, 2009 at 5:45 pm and is filed under 技术相关. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply