Ability to specify default quality for video

This commit is contained in:
2020-05-05 13:31:12 +02:00
parent 1634bf33c2
commit be747db93f
3 changed files with 10 additions and 2 deletions

View File

@@ -25,7 +25,7 @@ class TranscodingsInline(admin.StackedInline):
class VideoAdmin(admin.ModelAdmin):
model = models.Video
fields = ['title', 'description', 'slug', 'poster', 'og_image', 'created_at']
fields = ['title', 'description', 'slug', 'poster', 'og_image', 'created_at', 'default_quality']
inlines = [TranscodingsInline]
list_display = ('title', 'slug', 'created_at', 'updated_at')
ordering = ('-created_at', )

View File

@@ -48,6 +48,8 @@ class Video(models.Model):
description = models.TextField()
poster = models.OneToOneField(Upload, on_delete=models.PROTECT, blank=True, null=True, related_name='video_poster')
og_image = models.OneToOneField(Upload, on_delete=models.PROTECT, blank=True, null=True, related_name='video_og_image')
default_quality = models.CharField(choices=((quality.name, quality.name) for quality in qualities),
max_length=128, blank=True, null=True)
created_at = models.DateTimeField(default=datetime.now)
updated_at = models.DateTimeField(default=datetime.now)

View File

@@ -21,9 +21,15 @@ def video(request: HttpRequest, slug: str) -> HttpResponse:
qualities = _get_qualities(video)
try:
# find quality specified by URL param
quality = qualities[request.GET['quality']]
except:
quality = next(iter(qualities.values()))
# find quality specified by default quality specified for video
try:
quality = qualities[video.default_quality]
except:
# take default first quality
quality = next(iter(qualities.values()))
template_data.update(
width=quality[0].quality_obj.width,