MCPcopy Create free account
hub / github.com/Dispatcharr/Dispatcharr / epg_endpoint

Function epg_endpoint

apps/output/views.py:80–104  ·  view source on GitHub ↗
(request, profile_name=None, user=None)

Source from the content-addressed store, hash-verified

78 return generate_m3u(request, profile_name, user)
79
80def epg_endpoint(request, profile_name=None, user=None):
81 logger.debug("epg_endpoint called: method=%s, profile=%s", request.method, profile_name)
82 if not network_access_allowed(request, "M3U_EPG"):
83 # Log blocked EPG download
84 from core.utils import log_system_event
85 client_ip = request.META.get('REMOTE_ADDR', 'unknown')
86 user_agent = request.META.get('HTTP_USER_AGENT', 'unknown')
87 log_system_event(
88 event_type='epg_blocked',
89 profile=profile_name or 'all',
90 reason='Network access denied',
91 client_ip=client_ip,
92 user_agent=user_agent,
93 )
94 return JsonResponse({"error": "Forbidden"}, status=403)
95
96 # Handle HEAD requests efficiently without generating content
97 if request.method == "HEAD":
98 logger.debug("Handling HEAD request for EPG")
99 response = HttpResponse(content_type="application/xml")
100 response["Content-Disposition"] = 'attachment; filename="Dispatcharr.xml"'
101 response["Cache-Control"] = "no-cache"
102 return response
103
104 return generate_epg(request, profile_name, user)
105
106@csrf_exempt
107@require_http_methods(["GET", "POST", "HEAD"])

Callers

nothing calls this directly

Calls 4

network_access_allowedFunction · 0.90
log_system_eventFunction · 0.90
generate_epgFunction · 0.90
getMethod · 0.45

Tested by

no test coverage detected