mirror of
https://github.com/tubearchivist/tubearchivist-frontend.git
synced 2024-11-22 11:50:14 +00:00
add playlist API list view
This commit is contained in:
parent
8edde732b6
commit
cd3e9dd024
@ -123,6 +123,9 @@ POST /api/channel/
|
|||||||
## Channel Item View
|
## Channel Item View
|
||||||
/api/channel/\<channel_id>/
|
/api/channel/\<channel_id>/
|
||||||
|
|
||||||
|
## Playlist List View
|
||||||
|
/api/playlist/
|
||||||
|
|
||||||
## Playlists Item View
|
## Playlists Item View
|
||||||
/api/playlist/\<playlist_id>/
|
/api/playlist/\<playlist_id>/
|
||||||
|
|
||||||
|
@ -40,6 +40,8 @@ class SearchProcess:
|
|||||||
processed = self._process_video(result["_source"])
|
processed = self._process_video(result["_source"])
|
||||||
if index == "ta_channel":
|
if index == "ta_channel":
|
||||||
processed = self._process_channel(result["_source"])
|
processed = self._process_channel(result["_source"])
|
||||||
|
if index == "ta_playlist":
|
||||||
|
processed = self._process_playlist(result["_source"])
|
||||||
|
|
||||||
return processed
|
return processed
|
||||||
|
|
||||||
@ -80,3 +82,19 @@ class SearchProcess:
|
|||||||
)
|
)
|
||||||
|
|
||||||
return dict(sorted(video_dict.items()))
|
return dict(sorted(video_dict.items()))
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _process_playlist(playlist_dict):
|
||||||
|
"""run on single playlist dict"""
|
||||||
|
playlist_id = playlist_dict["playlist_id"]
|
||||||
|
playlist_last_refresh = date_praser(
|
||||||
|
playlist_dict["playlist_last_refresh"]
|
||||||
|
)
|
||||||
|
playlist_dict.update(
|
||||||
|
{
|
||||||
|
"playlist_thumbnail": f"/cache/playlists/{playlist_id}.jpg",
|
||||||
|
"playlist_last_refresh": playlist_last_refresh,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
return dict(sorted(playlist_dict.items()))
|
||||||
|
@ -7,6 +7,7 @@ from api.views import (
|
|||||||
DownloadApiView,
|
DownloadApiView,
|
||||||
LoginApiView,
|
LoginApiView,
|
||||||
PingView,
|
PingView,
|
||||||
|
PlaylistApiListView,
|
||||||
PlaylistApiView,
|
PlaylistApiView,
|
||||||
VideoApiListView,
|
VideoApiListView,
|
||||||
VideoApiView,
|
VideoApiView,
|
||||||
@ -53,6 +54,11 @@ urlpatterns = [
|
|||||||
PlaylistApiView.as_view(),
|
PlaylistApiView.as_view(),
|
||||||
name="api-playlist",
|
name="api-playlist",
|
||||||
),
|
),
|
||||||
|
path(
|
||||||
|
"playlist/",
|
||||||
|
PlaylistApiListView.as_view(),
|
||||||
|
name="api-playlist-list",
|
||||||
|
),
|
||||||
path(
|
path(
|
||||||
"download/",
|
"download/",
|
||||||
DownloadApiListView.as_view(),
|
DownloadApiListView.as_view(),
|
||||||
|
@ -258,6 +258,22 @@ class PlaylistApiView(ApiBaseView):
|
|||||||
return Response(self.response, status=self.status_code)
|
return Response(self.response, status=self.status_code)
|
||||||
|
|
||||||
|
|
||||||
|
class PlaylistApiListView(ApiBaseView):
|
||||||
|
"""resolves to /api/playlist/
|
||||||
|
GET: returns list of indexed playlists
|
||||||
|
"""
|
||||||
|
|
||||||
|
search_base = "ta_playlist/_search/"
|
||||||
|
|
||||||
|
def get(self, request):
|
||||||
|
# pylint: disable=unused-argument
|
||||||
|
"""handle get request"""
|
||||||
|
data = {"query": {"match_all": {}}}
|
||||||
|
self.get_document_list(data)
|
||||||
|
self.get_paginate()
|
||||||
|
return Response(self.response)
|
||||||
|
|
||||||
|
|
||||||
class DownloadApiView(ApiBaseView):
|
class DownloadApiView(ApiBaseView):
|
||||||
"""resolves to /api/download/<video_id>/
|
"""resolves to /api/download/<video_id>/
|
||||||
GET: returns metadata dict of an item in the download queue
|
GET: returns metadata dict of an item in the download queue
|
||||||
|
Loading…
Reference in New Issue
Block a user