Added a PlaybackProvider to mark tracks as live stream
This commit is contained in:
@@ -5,6 +5,7 @@ import time
|
|||||||
from mopidy import backend
|
from mopidy import backend
|
||||||
|
|
||||||
import pykka
|
import pykka
|
||||||
|
import re
|
||||||
|
|
||||||
import mopidy_radionet
|
import mopidy_radionet
|
||||||
|
|
||||||
@@ -24,6 +25,9 @@ class RadioNetBackend(pykka.ThreadingActor, backend.Backend):
|
|||||||
mopidy_radionet.__version__))
|
mopidy_radionet.__version__))
|
||||||
|
|
||||||
self.library = RadioNetLibraryProvider(backend=self)
|
self.library = RadioNetLibraryProvider(backend=self)
|
||||||
|
self.playback = RadioNetPlaybackProvider(
|
||||||
|
audio=audio, backend=self
|
||||||
|
)
|
||||||
|
|
||||||
self.uri_schemes = ['radionet']
|
self.uri_schemes = ['radionet']
|
||||||
|
|
||||||
@@ -46,3 +50,17 @@ class RadioNetBackend(pykka.ThreadingActor, backend.Backend):
|
|||||||
self.radionet.get_local_stations()
|
self.radionet.get_local_stations()
|
||||||
self.radionet.get_favorites()
|
self.radionet.get_favorites()
|
||||||
self.set_update_timeout()
|
self.set_update_timeout()
|
||||||
|
|
||||||
|
class RadioNetPlaybackProvider(backend.PlaybackProvider):
|
||||||
|
|
||||||
|
def is_live(self, uri):
|
||||||
|
return True
|
||||||
|
|
||||||
|
def translate_uri(self, uri):
|
||||||
|
identifier = re.findall(r'^radionet:track:?([a-z0-9]+|\d+)?$', uri)
|
||||||
|
if identifier:
|
||||||
|
radio_data = self.backend.radionet.get_station_by_id(identifier)
|
||||||
|
if radio_data:
|
||||||
|
return radio_data.stream_url
|
||||||
|
|
||||||
|
return None
|
||||||
@@ -22,7 +22,7 @@ class RadioNetLibraryProvider(backend.LibraryProvider):
|
|||||||
|
|
||||||
variant, identifier = self.parse_uri(uri)
|
variant, identifier = self.parse_uri(uri)
|
||||||
|
|
||||||
if variant == 'station':
|
if variant == 'station' or variant == 'track':
|
||||||
identifier = int(identifier)
|
identifier = int(identifier)
|
||||||
radio_data = self.backend.radionet.get_station_by_id(identifier)
|
radio_data = self.backend.radionet.get_station_by_id(identifier)
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ class RadioNetLibraryProvider(backend.LibraryProvider):
|
|||||||
name=radio_data.name,
|
name=radio_data.name,
|
||||||
genre=radio_data.genres,
|
genre=radio_data.genres,
|
||||||
comment=radio_data.description,
|
comment=radio_data.description,
|
||||||
uri=radio_data.stream_url)
|
uri='radionet:track:%s' % (identifier))
|
||||||
return [track]
|
return [track]
|
||||||
|
|
||||||
return []
|
return []
|
||||||
|
|||||||
Reference in New Issue
Block a user