streamer: integrate, fix, ui change
This commit is contained in:
12
aircox_streamer/viewsets.py
Normal file → Executable file
12
aircox_streamer/viewsets.py
Normal file → Executable file
@ -46,7 +46,7 @@ class ControllerViewSet(viewsets.ViewSet):
|
||||
if station_pk is None:
|
||||
return None
|
||||
if station_pk not in self.streamers:
|
||||
raise Http404("station not found")
|
||||
raise Http404(f"station not found: {station_pk}")
|
||||
return self.streamers[station_pk]
|
||||
|
||||
def get_serializer(self, **kwargs):
|
||||
@ -60,7 +60,8 @@ class ControllerViewSet(viewsets.ViewSet):
|
||||
return serializer.data
|
||||
|
||||
def dispatch(self, request, *args, station_pk=None, **kwargs):
|
||||
self.streamer = self.get_streamer(station_pk)
|
||||
if not self.streamer:
|
||||
self.streamer = self.get_streamer(station_pk)
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
|
||||
@ -80,6 +81,9 @@ class StreamerViewSet(ControllerViewSet):
|
||||
def dispatch(self, request, *args, pk=None, **kwargs):
|
||||
if pk is not None:
|
||||
kwargs.setdefault("station_pk", pk)
|
||||
if pk := kwargs.get("station_pk"):
|
||||
kwargs["station_pk"] = int(pk)
|
||||
|
||||
self.streamer = self.get_streamer(**kwargs)
|
||||
self.object = self.streamer
|
||||
return super().dispatch(request, *args, **kwargs)
|
||||
@ -88,6 +92,8 @@ class StreamerViewSet(ControllerViewSet):
|
||||
class SourceViewSet(ControllerViewSet):
|
||||
serializer_class = SourceSerializer
|
||||
model = controllers.Source
|
||||
lookup_field = "pk"
|
||||
lookup_value_converter = "str"
|
||||
|
||||
def get_sources(self):
|
||||
return (s for s in self.streamer.sources if isinstance(s, self.model))
|
||||
@ -139,7 +145,7 @@ class QueueSourceViewSet(SourceViewSet):
|
||||
model = controllers.QueueSource
|
||||
|
||||
def get_sound_queryset(self, request):
|
||||
return Sound.objects.station(request.station).broadcast()
|
||||
return Sound.objects.station(request.station)
|
||||
|
||||
@action(detail=True, methods=["POST"])
|
||||
def push(self, request, pk):
|
||||
|
Reference in New Issue
Block a user