From bd0ad3682a61a709766f0d5cbe266a08c5cb0c2e Mon Sep 17 00:00:00 2001 From: tcely Date: Mon, 28 Apr 2025 15:03:13 -0400 Subject: [PATCH] Handle thumbnail redownload requests --- tubesync/sync/views.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tubesync/sync/views.py b/tubesync/sync/views.py index e7932a86..720b377a 100644 --- a/tubesync/sync/views.py +++ b/tubesync/sync/views.py @@ -546,6 +546,7 @@ class MediaItemView(DetailView): template_name = 'sync/media-item.html' model = Media messages = { + 'thumbnail': _('Thumbnail has been scheduled to redownload'), 'redownloading': _('Media file has been deleted and scheduled to redownload'), 'skipped': _('Media file has been deleted and marked to never download'), 'enabled': _('Media has been re-enabled and will be downloaded'), @@ -581,6 +582,24 @@ class MediaItemView(DetailView): data['media_file_path'] = pathlib.Path(self.object.media_file.path) if self.object.media_file else None return data + def get(self, *args, **kwargs): + if args[0].path.startswith("/media-thumb-redownload/"): + media = Media.objects.get(pk=kwargs["pk"]) + if media is None: + return HttpResponseNotFound() + + verbose_name = _('Redownload thumbnail for "{}": {}') + download_media_thumbnail( + str(media.pk), + media.thumbnail, + verbose_name=verbose_name.format(media.key, media.name), + ) + url = reverse_lazy('sync:media-item') + url = append_uri_params(url, {'message': 'thumbnail'}) + return HttpResponseRedirect(url) + else: + return super().get(self, *args, **kwargs) + class MediaRedownloadView(FormView, SingleObjectMixin): '''