Added a PlaybackProvider to mark tracks as live stream

This commit is contained in:
Eric van Blokland
2021-09-01 21:04:40 +02:00
parent 7e8b43de25
commit 2f659d8c60
2 changed files with 20 additions and 2 deletions

View File

@@ -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

View File

@@ -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 []