2018-07-31 19:51:39 +00:00
|
|
|
from django.conf import settings
|
|
|
|
|
from rest_framework import serializers
|
|
|
|
|
|
|
|
|
|
from .exceptions import FileExtensionError, TooLargeFile
|
|
|
|
|
|
|
|
|
|
|
2018-10-07 08:26:31 +00:00
|
|
|
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)
|
2018-11-10 21:45:55 +00:00
|
|
|
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:
|
2018-11-18 12:48:39 +00:00
|
|
|
raise FileExtensionError()
|
2018-07-31 19:51:39 +00:00
|
|
|
if file.size > settings.MAX_FILE_SIZE:
|
2018-11-18 12:48:39 +00:00
|
|
|
raise TooLargeFile()
|
2018-07-31 19:51:39 +00:00
|
|
|
return attrs
|
2018-10-01 20:34:57 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class YouTubeDownloadSerializer(serializers.Serializer):
|
|
|
|
|
url = serializers.URLField()
|
2018-10-07 08:26:31 +00:00
|
|
|
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)
|
2018-11-10 21:45:55 +00:00
|
|
|
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)
|