Merge branch 'plugins' of http://git.louiz.org/poezio into plugins
This commit is contained in:
commit
8a8284ae06
1 changed files with 37 additions and 0 deletions
37
plugins/mpd_client.py
Normal file
37
plugins/mpd_client.py
Normal file
|
@ -0,0 +1,37 @@
|
|||
# a plugin adding a command to manipulate an MPD instance
|
||||
|
||||
from plugin import BasePlugin
|
||||
from common import shell_split
|
||||
import mpd
|
||||
|
||||
class Plugin(BasePlugin):
|
||||
def init(self):
|
||||
self.add_command('mpd', self.command_mpd, "Usage: /mpd [full]\nMpd: sends a message showing the current song of an MPD instance. If full is provided, teh message is more verbose.", self.completion_mpd)
|
||||
|
||||
def command_mpd(self, args):
|
||||
args = shell_split(args)
|
||||
c = mpd.MPDClient()
|
||||
try:
|
||||
c.connect(host=self.config.get('host', 'localhost'), port=self.config.get('host', '6600'))
|
||||
except Exception as e:
|
||||
self.core.information('%s' % (e,), 'Error')
|
||||
return
|
||||
password = self.config.get('password', '')
|
||||
if password:
|
||||
try:
|
||||
c.password(password)
|
||||
except Exception as e:
|
||||
self.core.information('%s' % (e,), 'Error')
|
||||
return
|
||||
current = c.currentsong()
|
||||
current_time = float(c.status()['elapsed'])
|
||||
|
||||
s = '%(artist)s - %(title)s (%(album)s)' % current
|
||||
if 'full' in args:
|
||||
pourcentage = int(current_time / float(current['time']) * 10)
|
||||
s += ' \x192[\x191' + '-'*(pourcentage-1) + '\x193+' + '\x191' + '-' * (10-pourcentage-1) + '\x192]\x19o'
|
||||
if not self.core.send_message('%s' % (s,)):
|
||||
self.core.information('Cannot send result (%s), this is not a conversation tab' % result)
|
||||
|
||||
def completion_mpd(self, the_input):
|
||||
return the_input.auto_completion(['full'])
|
Loading…
Reference in a new issue