1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 import os
18 import dbus
19 import string
20 import gobject
21 import urllib
22 from GenericPlayer import GenericAPI
23
25 __name__ = 'Banshee API'
26 __version__ = '0.0'
27 __author__ = 'Whise and vrunner'
28 __desc__ = 'API to the Banshee Music Player'
29
30 ns = "org.gnome.Banshee"
31 iroot = "/org/gnome/Banshee/Player"
32 iface = "org.gnome.Banshee.Core"
33 playerAPI = None
34
35 __timeout = None
36 __interval = 2
37
38 callbackFn = None
39 __curplaying = None
40
41
42
45
47 if self.ns in dbus_iface.ListNames(): return True
48 else:
49 self.ns = "org.bansheeproject.Banshee"
50 self.iroot = "/org/bansheeproject/Banshee/PlayerEngine"
51 self.iface = "org.bansheeproject.Banshee.PlayerEngine"
52 if self.ns in dbus_iface.ListNames(): return True
53 else:return False
54
58
60 try:
61 return self.playerAPI.GetPlayingTitle()
62
63 except:
64 return self.playerAPI.GetCurrentTrack()['name']
65
67 try:
68 return self.playerAPI.GetPlayingAlbum()
69
70 except:
71 return self.playerAPI.GetCurrentTrack()['album']
72
74 try:
75 return self.playerAPI.GetPlayingArtist()
76
77 except:
78 return self.playerAPI.GetCurrentTrack()['artist']
79
81 try:
82 return self.playerAPI.GetPlayingCoverUri()
83 except:
84
85 t = self.playerAPI.GetCurrentUri().replace('file://','')
86 t = urllib.unquote(unicode.encode(t, 'utf-8'))
87 t = t.split('/')
88 basePath = ''
89 for l in t:
90 if l.find('.') == -1:
91 basePath = basePath + l +'/'
92
93 names = ['Album', 'Cover', 'Folde']
94 for x in os.listdir(basePath):
95 if os.path.splitext(x)[1] in [".jpg", ".png"] and (x.capitalize()[:5] in names):
96 coverFile = basePath + x
97 return coverFile
98
100 try:
101 if self.playerAPI.GetPlayingStatus() == 1: return True
102 else: return False
103 except:
104 if self.playerAPI.GetCurrentState() == 'playing':return True
105 else: return False
106
107
110
112 try:
113 self.playerAPI.Next()
114 except: os.system(' banshee-1 --next &')
115
117 try:
118 self.playerAPI.Previous()
119 except: os.system(' banshee-1 --previous &')
120
127
147