Merge branch 'dev' of https://github.com/Dispatcharr/Dispatcharr into proxy-settings

This commit is contained in:
SergeantPanda 2025-06-12 10:45:44 -05:00
commit ada1d51aaa
79 changed files with 6726 additions and 3193 deletions

View file

@ -1,22 +1,70 @@
# core/serializers.py
import json
import ipaddress
from rest_framework import serializers
from .models import CoreSettings, UserAgent, StreamProfile, ProxySettings
from .models import CoreSettings, UserAgent, StreamProfile, ProxySettings, NETWORK_ACCESS
class UserAgentSerializer(serializers.ModelSerializer):
class Meta:
model = UserAgent
fields = ['id', 'name', 'user_agent', 'description', 'is_active', 'created_at', 'updated_at']
fields = [
"id",
"name",
"user_agent",
"description",
"is_active",
"created_at",
"updated_at",
]
class StreamProfileSerializer(serializers.ModelSerializer):
class Meta:
model = StreamProfile
fields = ['id', 'name', 'command', 'parameters', 'is_active', 'user_agent', 'locked']
fields = [
"id",
"name",
"command",
"parameters",
"is_active",
"user_agent",
"locked",
]
class CoreSettingsSerializer(serializers.ModelSerializer):
class Meta:
model = CoreSettings
fields = '__all__'
fields = "__all__"
def update(self, instance, validated_data):
if instance.key == NETWORK_ACCESS:
errors = False
invalid = {}
value = json.loads(validated_data.get("value"))
for key, val in value.items():
cidrs = val.split(",")
for cidr in cidrs:
try:
ipaddress.ip_network(cidr)
except:
errors = True
if key not in invalid:
invalid[key] = []
invalid[key].append(cidr)
if errors:
# Perform CIDR validation
raise serializers.ValidationError(
{
"message": "Invalid CIDRs",
"value": invalid,
}
)
return super().update(instance, validated_data)
class ProxySettingsSerializer(serializers.ModelSerializer):
class Meta:
@ -24,7 +72,7 @@ class ProxySettingsSerializer(serializers.ModelSerializer):
fields = [
'id',
'buffering_timeout',
'buffering_speed',
'buffering_speed',
'redis_chunk_ttl',
'channel_shutdown_delay',
'channel_init_grace_period',