Compare commits

...

3 Commits

Author SHA1 Message Date
19dc4b5b64 Refactoring 2023-05-19 01:33:35 +02:00
95d5aa6992 Api endpoint for video search with querying implemented 2023-05-19 01:06:50 +02:00
468fb338f1 ADD: Api endpoint for search suggestions 2023-05-18 22:42:07 +02:00
24 changed files with 31 additions and 13 deletions

2
.gitignore vendored
View File

@ -2,3 +2,5 @@ db.sqlite3
videos/
channel_archiver/yt-dlp-archive.txt
channel_archiver/UnusualVideos*
*__pycache__*
*.pyc

0
api/__init__.py Normal file
View File

6
api/urls.py Normal file
View File

@ -0,0 +1,6 @@
from django.urls import path
from . import views
urlpatterns = [
path('', views.videoAPI),
]

12
api/views.py Normal file
View File

@ -0,0 +1,12 @@
from django.db.models import Q
from rest_framework.response import Response
from rest_framework.decorators import api_view
from core.models import Video
from core.serializers import VideoSerializer
@api_view(['GET'])
def videoAPI(request):
q = request.GET.get('q', '')
videos = Video.objects.filter(Q(id__contains=q) | Q(name__contains=q))
serializer = VideoSerializer(videos, many=True)
return Response(serializer.data)

Binary file not shown.

Binary file not shown.

View File

@ -1,6 +1,4 @@
from django.contrib import admin
from .models import Video
@admin.register(Video)

7
core/serializers.py Normal file
View File

@ -0,0 +1,7 @@
from rest_framework import serializers
from .models import Video
class VideoSerializer(serializers.ModelSerializer):
class Meta:
model = Video
fields = ['id', 'name']

View File

@ -1,11 +1,10 @@
from django.urls import path
from . import views
urlpatterns = [
path('', views.core, name='core'),
path('status/', views.status, name='status'),
path('about/', views.about, name='about'),
path('random/', views.random, name='random'),
path('view/<int:id>', views.view, name='view'),
]
]

View File

@ -1,9 +1,6 @@
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse
from django.shortcuts import redirect
from core.models import Video
import random
# Create your views here.
@ -11,10 +8,9 @@ def core(request):
videos = Video.objects.all()
return render(request, 'base.html', {'videos': videos[::-1]})
def random(request):
videos = Video.objects.all().order_by("?")
ran = videos.first();
ran = videos.first()
return redirect('/view/'+str(ran.id))
def status(request):

View File

@ -40,7 +40,7 @@ INSTALLED_APPS = [
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'sage_stream',
#'sage_stream',
'core'
]

View File

@ -22,9 +22,7 @@ urlpatterns = [
path('admin/', admin.site.urls),
path('auth/', include('django.contrib.auth.urls')),
path('', include('core.urls')),
path('/', include('core.urls')),
path('status/', include('core.urls')),
path('api/', include('sage_stream.api.urls')),
path('api/', include('api.urls')),
]
if settings.DEBUG: