Make default click action user-configurable. Fixes #133. Optimise updating of now-playing icons. Fixes #184.
50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
from __future__ import absolute_import, division, print_function, unicode_literals
|
|
|
|
import logging
|
|
|
|
from mopidy_musicbox_webclient import Extension
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class Webclient(object):
|
|
|
|
def __init__(self, config):
|
|
self.config = config
|
|
|
|
@property
|
|
def ext_config(self):
|
|
return self.config.get(Extension.ext_name, {})
|
|
|
|
@classmethod
|
|
def get_version(cls):
|
|
return Extension.version
|
|
|
|
def get_websocket_url(self, request):
|
|
host, port = self.ext_config['websocket_host'], self.ext_config['websocket_port']
|
|
ws_url = ''
|
|
if host or port:
|
|
if not host:
|
|
host = request.host.partition(':')[0]
|
|
logger.warning('Musicbox websocket_host not specified, '
|
|
'using %s', host)
|
|
elif not port:
|
|
port = self.config['http']['port']
|
|
logger.warning('Musicbox websocket_port not specified, '
|
|
'using %s', port)
|
|
protocol = 'ws'
|
|
if request.protocol == 'https':
|
|
protocol = 'wss'
|
|
ws_url = "%s://%s:%d/mopidy/ws" % (protocol, host, port)
|
|
|
|
return ws_url
|
|
|
|
def has_alarm_clock(self):
|
|
return self.ext_config.get('alarmclock', {}).get('enabled', False)
|
|
|
|
def is_music_box(self):
|
|
return self.ext_config.get('musicbox', False)
|
|
|
|
def get_default_click_action(self):
|
|
return self.ext_config.get('on_track_click', 'PLAY_ALL')
|