start implementing download endpoint (only movie for now)

This commit is contained in:
Francesco Grazioso 2024-04-18 14:41:52 +02:00
parent 28237fa50f
commit 12e225ee53
2 changed files with 34 additions and 2 deletions

View File

@ -1,9 +1,10 @@
from rest_framework import routers
from .views import SearchView
from .views import SearchView, DownloadView
router = routers.DefaultRouter()
router.register(r"search", SearchView, basename="search")
router.register(r"download", DownloadView, basename="download")
urlpatterns = router.urls

View File

@ -3,11 +3,12 @@ import json
from rest_framework import viewsets
from rest_framework.response import Response
from Src.Api import search, get_version_and_domain
from Src.Api import search, get_version_and_domain, download_film, anime_download_film
from Src.Api.site import media_search_manager, anime_search
class SearchView(viewsets.ViewSet):
def get_queryset(self):
# Questa funzione viene chiamata prima di list e retrieve
self.search_query = self.request.query_params.get("search_terms")
@ -30,8 +31,38 @@ class SearchView(viewsets.ViewSet):
if self.len_database != 0:
data_to_return = []
for _, media in enumerate(media_list):
if self.type_search == "anime" and media.type == "TV":
media.type = "TV_ANIME"
data_to_return.append(media.to_dict)
return Response({"media": data_to_return})
return Response({"error": "No media found with that search query"})
class DownloadView(viewsets.ViewSet):
def create(self, request):
self.media_id = request.data.get("media_id")
self.media_slug = request.data.get("media_slug")
self.type_media = request.data.get("type_media").upper()
self.site_version, self.domain = get_version_and_domain()
response_dict = {"error": "No media found with that search query"}
if self.type_media == "FILM":
download_film(self.media_id, self.media_slug, self.domain)
response_dict = {"message": "Download done, it is saved in Video folder inside project root"}
elif self.type_media == "TV":
pass
elif self.type_media == "TV_ANIME":
pass
elif self.type_media == "OVA":
anime_download_film(
id_film=self.media_id,
title_name=self.media_slug
)
response_dict = {"message": "Download done, it is saved in Video folder inside project root"}
return Response(response_dict)