Ability to specify default quality for video
This commit is contained in:
@@ -25,7 +25,7 @@ class TranscodingsInline(admin.StackedInline):
|
|||||||
|
|
||||||
class VideoAdmin(admin.ModelAdmin):
|
class VideoAdmin(admin.ModelAdmin):
|
||||||
model = models.Video
|
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]
|
inlines = [TranscodingsInline]
|
||||||
list_display = ('title', 'slug', 'created_at', 'updated_at')
|
list_display = ('title', 'slug', 'created_at', 'updated_at')
|
||||||
ordering = ('-created_at', )
|
ordering = ('-created_at', )
|
||||||
|
|||||||
@@ -48,6 +48,8 @@ class Video(models.Model):
|
|||||||
description = models.TextField()
|
description = models.TextField()
|
||||||
poster = models.OneToOneField(Upload, on_delete=models.PROTECT, blank=True, null=True, related_name='video_poster')
|
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')
|
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)
|
created_at = models.DateTimeField(default=datetime.now)
|
||||||
updated_at = models.DateTimeField(default=datetime.now)
|
updated_at = models.DateTimeField(default=datetime.now)
|
||||||
|
|
||||||
|
|||||||
@@ -21,9 +21,15 @@ def video(request: HttpRequest, slug: str) -> HttpResponse:
|
|||||||
|
|
||||||
qualities = _get_qualities(video)
|
qualities = _get_qualities(video)
|
||||||
try:
|
try:
|
||||||
|
# find quality specified by URL param
|
||||||
quality = qualities[request.GET['quality']]
|
quality = qualities[request.GET['quality']]
|
||||||
except:
|
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(
|
template_data.update(
|
||||||
width=quality[0].quality_obj.width,
|
width=quality[0].quality_obj.width,
|
||||||
|
|||||||
Reference in New Issue
Block a user