mirror of
https://github.com/Arrowar/StreamingCommunity.git
synced 2025-06-07 12:05:35 +00:00
created basic search endpoint
This commit is contained in:
parent
9b7598bbe2
commit
031371897d
@ -37,6 +37,8 @@ INSTALLED_APPS = [
|
||||
"django.contrib.sessions",
|
||||
"django.contrib.messages",
|
||||
"django.contrib.staticfiles",
|
||||
"endpoints",
|
||||
"rest_framework",
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
|
@ -15,8 +15,9 @@ Including another URLconf
|
||||
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
||||
"""
|
||||
from django.contrib import admin
|
||||
from django.urls import path
|
||||
from django.urls import path, include
|
||||
|
||||
urlpatterns = [
|
||||
path("admin/", admin.site.urls),
|
||||
path("api/", include("endpoints.urls")),
|
||||
]
|
||||
|
9
api/endpoints/urls.py
Normal file
9
api/endpoints/urls.py
Normal file
@ -0,0 +1,9 @@
|
||||
from rest_framework import routers
|
||||
|
||||
from .views import SearchView
|
||||
|
||||
router = routers.DefaultRouter()
|
||||
|
||||
router.register(r"search", SearchView, basename="search")
|
||||
|
||||
urlpatterns = router.urls
|
@ -1,3 +1,33 @@
|
||||
from django.shortcuts import render
|
||||
from rest_framework import viewsets
|
||||
from rest_framework.response import Response
|
||||
|
||||
# Create your views here.
|
||||
from Src.Api import search, get_version_and_domain
|
||||
from Src.Api.site import media_search_manager, anime_search
|
||||
|
||||
|
||||
class SearchView(viewsets.ViewSet):
|
||||
def list(self, request):
|
||||
search_query = request.query_params.get("search_terms")
|
||||
type_search = request.query_params.get("type")
|
||||
|
||||
media_search_manager.media_list = []
|
||||
site_version, domain = get_version_and_domain()
|
||||
if type_search == "film":
|
||||
len_database = search(search_query, domain)
|
||||
elif type_search == "anime":
|
||||
len_database = anime_search(search_query)
|
||||
if len_database != 0:
|
||||
media_list = media_search_manager.media_list
|
||||
data_to_return = []
|
||||
for i, media in enumerate(media_list):
|
||||
data_to_return.append({
|
||||
"id": i,
|
||||
"name": media.name,
|
||||
"type": media.type,
|
||||
"score": media.score,
|
||||
"last_air_date": media.last_air_date
|
||||
})
|
||||
|
||||
return Response({"media": data_to_return})
|
||||
|
||||
return Response({"error": "No media found with that search query"})
|
||||
|
@ -2,6 +2,7 @@
|
||||
"""Django's command-line utility for administrative tasks."""
|
||||
import os
|
||||
import sys
|
||||
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
||||
|
||||
|
||||
def main():
|
||||
|
@ -6,4 +6,5 @@ ffmpeg-python
|
||||
pycryptodome
|
||||
m3u8
|
||||
lxml
|
||||
django==4.2.11
|
||||
django==4.2.11
|
||||
djangorestframework==3.15.1
|
Loading…
x
Reference in New Issue
Block a user