Pep8 audioaddict
This commit is contained in:
parent
d23d9672c6
commit
242aa15089
1 changed files with 44 additions and 45 deletions
|
|
@ -28,6 +28,7 @@ import time
|
||||||
|
|
||||||
__all__ = ['AudioAddictBackend']
|
__all__ = ['AudioAddictBackend']
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# WARNING
|
# WARNING
|
||||||
#
|
#
|
||||||
|
|
@ -36,7 +37,6 @@ __all__ = ['AudioAddictBackend']
|
||||||
# option to another player in the ~/.config/weboob/radioob config file:
|
# option to another player in the ~/.config/weboob/radioob config file:
|
||||||
# [ROOT]
|
# [ROOT]
|
||||||
# media_player = your_non_mplayer_player
|
# media_player = your_non_mplayer_player
|
||||||
|
|
||||||
class AudioAddictBackend(BaseBackend, ICapRadio, ICapCollection):
|
class AudioAddictBackend(BaseBackend, ICapRadio, ICapCollection):
|
||||||
NAME = 'audioaddict'
|
NAME = 'audioaddict'
|
||||||
MAINTAINER = u'Pierre Mazière'
|
MAINTAINER = u'Pierre Mazière'
|
||||||
|
|
@ -51,7 +51,7 @@ class AudioAddictBackend(BaseBackend, ICapRadio, ICapCollection):
|
||||||
'DI': {
|
'DI': {
|
||||||
'desc': 'Digitally Imported addictive electronic music',
|
'desc': 'Digitally Imported addictive electronic music',
|
||||||
'domain': 'di.fm',
|
'domain': 'di.fm',
|
||||||
'streams': {'android_low':{'rate': 40, 'fmt': 'aac'},
|
'streams': {'android_low': {'rate': 40, 'fmt': 'aac'},
|
||||||
'android': {'rate': 64, 'fmt': 'aac'},
|
'android': {'rate': 64, 'fmt': 'aac'},
|
||||||
'android_high': {'rate': 96, 'fmt': 'aac'},
|
'android_high': {'rate': 96, 'fmt': 'aac'},
|
||||||
'android_premium_low': {'rate': 40, 'fmt': 'aac'},
|
'android_premium_low': {'rate': 40, 'fmt': 'aac'},
|
||||||
|
|
@ -110,15 +110,15 @@ class AudioAddictBackend(BaseBackend, ICapRadio, ICapCollection):
|
||||||
'android_premium': {'rate': 128, 'fmt': 'aac'},
|
'android_premium': {'rate': 128, 'fmt': 'aac'},
|
||||||
'android_premium_high': {'rate': 256, 'fmt': 'mp3'},
|
'android_premium_high': {'rate': 256, 'fmt': 'mp3'},
|
||||||
'public3': {'rate': 96, 'fmt': 'mp3'}
|
'public3': {'rate': 96, 'fmt': 'mp3'}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CONFIG = BackendConfig(Value('networks',
|
CONFIG = BackendConfig(Value('networks',
|
||||||
label='Selected Networks [%s](space separated)'%\
|
label='Selected Networks [%s](space separated)' %
|
||||||
' '.join(NETWORKS.keys()), default=''),
|
' '.join(NETWORKS.keys()), default=''),
|
||||||
Value('quality', label='Radio streaming quality',
|
Value('quality', label='Radio streaming quality',
|
||||||
choices={'h':'high','l':'low'},
|
choices={'h': 'high', 'l': 'low'},
|
||||||
default='h')
|
default='h')
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -129,41 +129,41 @@ class AudioAddictBackend(BaseBackend, ICapRadio, ICapCollection):
|
||||||
|
|
||||||
def _get_tracks_history(self, network):
|
def _get_tracks_history(self, network):
|
||||||
self._fetch_radio_list(network)
|
self._fetch_radio_list(network)
|
||||||
domain=self.NETWORKS[network]['domain']
|
domain = self.NETWORKS[network]['domain']
|
||||||
url='http://api.audioaddict.com/v1/%s/track_history' %\
|
url = 'http://api.audioaddict.com/v1/%s/track_history' %\
|
||||||
(domain[:domain.rfind('.')])
|
(domain[:domain.rfind('.')])
|
||||||
self.HISTORY[network] = self.browser.location(url)
|
self.HISTORY[network] = self.browser.location(url)
|
||||||
return self.HISTORY
|
return self.HISTORY
|
||||||
|
|
||||||
def create_default_browser(self):
|
def create_default_browser(self):
|
||||||
return self.create_browser(parser='json')
|
return self.create_browser(parser='json')
|
||||||
|
|
||||||
def _get_stream_name(self,network,quality):
|
def _get_stream_name(self, network, quality):
|
||||||
streamName='public3'
|
streamName = 'public3'
|
||||||
for name in self.NETWORKS[network]['streams'].keys():
|
for name in self.NETWORKS[network]['streams'].keys():
|
||||||
if name.startswith('public') and \
|
if name.startswith('public') and \
|
||||||
self.NETWORKS[network]['streams'][name]['rate']>=64:
|
self.NETWORKS[network]['streams'][name]['rate'] >= 64:
|
||||||
if quality=='h':
|
if quality == 'h':
|
||||||
streamName=name
|
streamName = name
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
if quality=='l':
|
if quality == 'l':
|
||||||
streamName=name
|
streamName = name
|
||||||
break
|
break
|
||||||
return streamName
|
return streamName
|
||||||
|
|
||||||
def _fetch_radio_list(self,network=None):
|
def _fetch_radio_list(self, network=None):
|
||||||
quality=self.config['quality'].get()
|
quality = self.config['quality'].get()
|
||||||
for selectedNetwork in self.config['networks'].get().split():
|
for selectedNetwork in self.config['networks'].get().split():
|
||||||
if network is None or network == selectedNetwork:
|
if network is None or network == selectedNetwork:
|
||||||
streamName=self._get_stream_name(selectedNetwork,quality)
|
streamName = self._get_stream_name(selectedNetwork, quality)
|
||||||
if not self.RADIOS:
|
if not self.RADIOS:
|
||||||
self.RADIOS={}
|
self.RADIOS = {}
|
||||||
if not selectedNetwork in self.RADIOS:
|
if not selectedNetwork in self.RADIOS:
|
||||||
document = self.browser.location('http://listen.%s/%s'%\
|
document = self.browser.location('http://listen.%s/%s' %
|
||||||
(self.NETWORKS[selectedNetwork]['domain'],
|
(self.NETWORKS[selectedNetwork]['domain'],
|
||||||
streamName))
|
streamName))
|
||||||
self.RADIOS[selectedNetwork]={}
|
self.RADIOS[selectedNetwork] = {}
|
||||||
for info in document:
|
for info in document:
|
||||||
radio = info['key']
|
radio = info['key']
|
||||||
self.RADIOS[selectedNetwork][radio] = {}
|
self.RADIOS[selectedNetwork][radio] = {}
|
||||||
|
|
@ -194,16 +194,16 @@ class AudioAddictBackend(BaseBackend, ICapRadio, ICapCollection):
|
||||||
yield self.get_radio(radio+"."+network)
|
yield self.get_radio(radio+"."+network)
|
||||||
return
|
return
|
||||||
for network in self.config['networks'].get().split():
|
for network in self.config['networks'].get().split():
|
||||||
yield Collection([network],self.NETWORKS[network]['desc'])
|
yield Collection([network], self.NETWORKS[network]['desc'])
|
||||||
|
|
||||||
def get_current(self, network, radio):
|
def get_current(self, network, radio):
|
||||||
channel={}
|
channel = {}
|
||||||
if not network in self.HISTORY:
|
if not network in self.HISTORY:
|
||||||
self._get_tracks_history(network)
|
self._get_tracks_history(network)
|
||||||
channel=self.HISTORY[network].get(str(self.RADIOS[network][radio]['id']))
|
channel = self.HISTORY[network].get(str(self.RADIOS[network][radio]['id']))
|
||||||
else:
|
else:
|
||||||
now=time.time()
|
now=time.time()
|
||||||
channel=self.HISTORY[network].get(str(self.RADIOS[network][radio]['id']))
|
channel = self.HISTORY[network].get(str(self.RADIOS[network][radio]['id']))
|
||||||
if channel is None:
|
if channel is None:
|
||||||
return 'Unknown', 'Unknown'
|
return 'Unknown', 'Unknown'
|
||||||
if (channel.get('started')+channel.get('duration')) < now:
|
if (channel.get('started')+channel.get('duration')) < now:
|
||||||
|
|
@ -213,9 +213,9 @@ class AudioAddictBackend(BaseBackend, ICapRadio, ICapCollection):
|
||||||
artist = u'' + (channel.get('artist', '') or 'Unknown')
|
artist = u'' + (channel.get('artist', '') or 'Unknown')
|
||||||
title = u''+(channel.get('title', '') or 'Unknown')
|
title = u''+(channel.get('title', '') or 'Unknown')
|
||||||
|
|
||||||
if artist == 'Unknown' :
|
if artist == 'Unknown':
|
||||||
track=u'' + (channel.get('track', '') or 'Unknown')
|
track = u'' + (channel.get('track', '') or 'Unknown')
|
||||||
if track != 'Unknown' :
|
if track != 'Unknown':
|
||||||
artist = track[:track.find(' - ')]
|
artist = track[:track.find(' - ')]
|
||||||
|
|
||||||
return artist, title
|
return artist, title
|
||||||
|
|
@ -224,7 +224,7 @@ class AudioAddictBackend(BaseBackend, ICapRadio, ICapCollection):
|
||||||
if not isinstance(radio, Radio):
|
if not isinstance(radio, Radio):
|
||||||
radio = Radio(radio)
|
radio = Radio(radio)
|
||||||
|
|
||||||
radioName,network=radio.id.split('.',1)
|
radioName, network = radio.id.split('.', 1)
|
||||||
|
|
||||||
self._fetch_radio_list(network)
|
self._fetch_radio_list(network)
|
||||||
|
|
||||||
|
|
@ -235,42 +235,41 @@ class AudioAddictBackend(BaseBackend, ICapRadio, ICapCollection):
|
||||||
radio.title = radio_dict['name']
|
radio.title = radio_dict['name']
|
||||||
radio.description = radio_dict['description']
|
radio.description = radio_dict['description']
|
||||||
|
|
||||||
artist, title = self.get_current(network,radioName)
|
artist, title = self.get_current(network, radioName)
|
||||||
current = AudioStreamInfo(0)
|
current = AudioStreamInfo(0)
|
||||||
current.who = artist
|
current.who = artist
|
||||||
current.what = title
|
current.what = title
|
||||||
radio.current = current
|
radio.current = current
|
||||||
|
|
||||||
radio.streams = []
|
radio.streams = []
|
||||||
defaultname=self._get_stream_name(network,self.config['quality'].get())
|
defaultname = self._get_stream_name(network, self.config['quality'].get())
|
||||||
stream = BaseAudioStream(0)
|
stream = BaseAudioStream(0)
|
||||||
stream.bitrate=self.NETWORKS[network]['streams'][defaultname]['rate']
|
stream.bitrate = self.NETWORKS[network]['streams'][defaultname]['rate']
|
||||||
stream.format=self.NETWORKS[network]['streams'][defaultname]['fmt']
|
stream.format = self.NETWORKS[network]['streams'][defaultname]['fmt']
|
||||||
stream.title = u'%s %skbps' % (stream.format,stream.bitrate)
|
stream.title = u'%s %skbps' % (stream.format, stream.bitrate)
|
||||||
stream.url = 'http://listen.%s/%s/%s.pls'%\
|
stream.url = 'http://listen.%s/%s/%s.pls' %\
|
||||||
(self.NETWORKS[network]['domain'],defaultname,radioName)
|
(self.NETWORKS[network]['domain'], defaultname, radioName)
|
||||||
radio.streams.append(stream)
|
radio.streams.append(stream)
|
||||||
i=1
|
i = 1
|
||||||
for name in self.NETWORKS[network]['streams'].keys():
|
for name in self.NETWORKS[network]['streams'].keys():
|
||||||
if name == defaultname:
|
if name == defaultname:
|
||||||
continue
|
continue
|
||||||
stream = BaseAudioStream(i)
|
stream = BaseAudioStream(i)
|
||||||
stream.bitrate=self.NETWORKS[network]['streams'][name]['rate']
|
stream.bitrate = self.NETWORKS[network]['streams'][name]['rate']
|
||||||
stream.format=self.NETWORKS[network]['streams'][name]['fmt']
|
stream.format = self.NETWORKS[network]['streams'][name]['fmt']
|
||||||
stream.title = u'%s %skbps' % (stream.format,stream.bitrate)
|
stream.title = u'%s %skbps' % (stream.format, stream.bitrate)
|
||||||
stream.url = 'http://listen.%s/%s/%s.pls'%\
|
stream.url = 'http://listen.%s/%s/%s.pls'%\
|
||||||
(self.NETWORKS[network]['domain'],name,radioName)
|
(self.NETWORKS[network]['domain'], name, radioName)
|
||||||
|
|
||||||
radio.streams.append(stream)
|
radio.streams.append(stream)
|
||||||
i=i+1
|
i = i + 1
|
||||||
return radio
|
return radio
|
||||||
|
|
||||||
def fill_radio(self, radio, fields):
|
def fill_radio(self, radio, fields):
|
||||||
if 'current' in fields:
|
if 'current' in fields:
|
||||||
radioName,network=radio.id.split('.',1)
|
radioName, network = radio.id.split('.', 1)
|
||||||
radio.current = AudioStreamInfo(0)
|
radio.current = AudioStreamInfo(0)
|
||||||
radio.current.who, radio.current.what = self.get_current(network,radioName)
|
radio.current.who, radio.current.what = self.get_current(network, radioName)
|
||||||
return radio
|
return radio
|
||||||
|
|
||||||
OBJECTS = {Radio: fill_radio}
|
OBJECTS = {Radio: fill_radio}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue