comixify/api/serializers.py

33 lines
1.7 KiB
Python
Raw Normal View History

2018-07-31 19:51:39 +00:00
from django.conf import settings
from rest_framework import serializers
from .exceptions import FileExtensionError, TooLargeFile
class VideoSerializer(serializers.Serializer):
file = serializers.FileField()
frames_mode = serializers.IntegerField(min_value=0, max_value=1, default=settings.DEFAULT_FRAMES_SAMPLING_MODE)
rl_mode = serializers.IntegerField(min_value=0, max_value=1, default=settings.DEFAULT_RL_MODE)
image_assessment_mode = serializers.IntegerField(min_value=0, max_value=1,
default=settings.DEFAULT_IMAGE_ASSESSMENT_MODE)
style_transfer_mode = serializers.IntegerField(min_value=0, max_value=2,
default=settings.DEFAULT_STYLE_TRANSFER_MODE)
2018-07-31 19:51:39 +00:00
def validate(self, attrs):
2018-08-20 23:00:22 +00:00
file = attrs.get("file")
if file.name.split(".")[-1] not in settings.PERMITTED_VIDEO_EXTENSIONS:
raise FileExtensionError()
2018-07-31 19:51:39 +00:00
if file.size > settings.MAX_FILE_SIZE:
raise TooLargeFile()
2018-07-31 19:51:39 +00:00
return attrs
class YouTubeDownloadSerializer(serializers.Serializer):
url = serializers.URLField()
frames_mode = serializers.IntegerField(min_value=0, max_value=1, default=settings.DEFAULT_FRAMES_SAMPLING_MODE)
rl_mode = serializers.IntegerField(min_value=0, max_value=1, default=settings.DEFAULT_RL_MODE)
image_assessment_mode = serializers.IntegerField(min_value=0, max_value=1,
default=settings.DEFAULT_IMAGE_ASSESSMENT_MODE)
style_transfer_mode = serializers.IntegerField(min_value=0, max_value=2,
default=settings.DEFAULT_STYLE_TRANSFER_MODE)