mirror of
https://github.com/Dispatcharr/Dispatcharr.git
synced 2026-01-23 02:35:14 +00:00
Updated EPGData
Added EPG Data endpoint
This commit is contained in:
parent
aa6cbf3b65
commit
fe8d6fd082
3 changed files with 26 additions and 10 deletions
|
|
@ -1,12 +1,13 @@
|
|||
from django.urls import path, include
|
||||
from rest_framework.routers import DefaultRouter
|
||||
from .api_views import EPGSourceViewSet, ProgramViewSet, EPGGridAPIView, EPGImportAPIView
|
||||
from .api_views import EPGSourceViewSet, ProgramViewSet, EPGGridAPIView, EPGImportAPIView, EPGDataViewSet
|
||||
|
||||
app_name = 'epg'
|
||||
|
||||
router = DefaultRouter()
|
||||
router.register(r'sources', EPGSourceViewSet, basename='epg-source')
|
||||
router.register(r'programs', ProgramViewSet, basename='program')
|
||||
router.register(r'epgdata', EPGDataViewSet, basename='epgdata')
|
||||
|
||||
urlpatterns = [
|
||||
path('grid/', EPGGridAPIView.as_view(), name='epg_grid'),
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ from drf_yasg.utils import swagger_auto_schema
|
|||
from drf_yasg import openapi
|
||||
from django.utils import timezone
|
||||
from datetime import timedelta
|
||||
from .models import EPGSource, ProgramData # Using ProgramData
|
||||
from .serializers import ProgramDataSerializer, EPGSourceSerializer # Updated serializer
|
||||
from .models import EPGSource, ProgramData, EPGData # Added ProgramData
|
||||
from .serializers import ProgramDataSerializer, EPGSourceSerializer, EPGDataSerializer # Updated serializer
|
||||
from .tasks import refresh_epg_data
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
|
@ -78,3 +78,16 @@ class EPGImportAPIView(APIView):
|
|||
refresh_epg_data.delay() # Trigger Celery task
|
||||
logger.info("EPGImportAPIView: Task dispatched to refresh EPG data.")
|
||||
return Response({'success': True, 'message': 'EPG data import initiated.'}, status=status.HTTP_202_ACCEPTED)
|
||||
|
||||
|
||||
# ─────────────────────────────
|
||||
# 5) EPG Data View
|
||||
# ─────────────────────────────
|
||||
class EPGDataViewSet(viewsets.ReadOnlyModelViewSet):
|
||||
"""
|
||||
API endpoint that allows EPGData objects to be viewed.
|
||||
"""
|
||||
queryset = EPGData.objects.all()
|
||||
serializer_class = EPGDataSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
|
|
|
|||
|
|
@ -13,12 +13,14 @@ class ProgramDataSerializer(serializers.ModelSerializer):
|
|||
fields = ['id', 'start_time', 'end_time', 'title', 'sub_title', 'description', 'tvg_id']
|
||||
|
||||
class EPGDataSerializer(serializers.ModelSerializer):
|
||||
programs = ProgramDataSerializer(many=True, read_only=True)
|
||||
channel = serializers.SerializerMethodField()
|
||||
|
||||
def get_channel(self, obj):
|
||||
return {"id": obj.channel.id, "name": obj.channel.name} if obj.channel else None
|
||||
|
||||
"""
|
||||
Only returns the tvg_id and the 'name' field from EPGData.
|
||||
We assume 'name' is effectively the channel name.
|
||||
"""
|
||||
class Meta:
|
||||
model = EPGData
|
||||
fields = ['id', 'channel', 'name', 'programs']
|
||||
fields = [
|
||||
'id',
|
||||
'tvg_id',
|
||||
'name',
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue