diff options
author | trizen <trizen@protonmail.com> | 2020-12-06 00:55:55 +0200 |
---|---|---|
committer | Jesús <heckyel@hyperbola.info> | 2020-12-15 13:05:10 -0500 |
commit | 8cf51536d781623cba4ffffb7d6ac46d484065ee (patch) | |
tree | db9df22065cd16ab47a5fb73882a898644c6e847 /bin/gtk-fair-viewer | |
parent | 7d4bb0c1ede27209aa030c0214e1f2a53e8a9183 (diff) | |
download | fair-viewer-8cf51536d781623cba4ffffb7d6ac46d484065ee.tar.lz fair-viewer-8cf51536d781623cba4ffffb7d6ac46d484065ee.tar.xz fair-viewer-8cf51536d781623cba4ffffb7d6ac46d484065ee.zip |
- Workaround for non-existent extra thumbnails in "video details" window.
Signed-off-by: Jesús <heckyel@hyperbola.info>
Diffstat (limited to 'bin/gtk-fair-viewer')
-rwxr-xr-x | bin/gtk-fair-viewer | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/bin/gtk-fair-viewer b/bin/gtk-fair-viewer index 34f1688..f00d648 100755 --- a/bin/gtk-fair-viewer +++ b/bin/gtk-fair-viewer @@ -2434,8 +2434,30 @@ sub get_pixbuf_thumbnail_from_content { sub get_pixbuf_thumbnail_from_url { my ($url, $xsize, $ysize) = @_; + + state %cache; + + my $key = "$url $xsize $ysize"; + + if (exists $cache{$key}) { + return $cache{$key}; + } + my $thumbnail = lwp_get($url); - return get_pixbuf_thumbnail_from_content($thumbnail, $xsize, $ysize); + + if (not defined($thumbnail)) { + if ($url =~ s{/mq([0-9])\.}{/$1.}) { + $thumbnail = lwp_get($url); + } + } + + my $pixbuf = get_pixbuf_thumbnail_from_content($thumbnail, $xsize, $ysize); + + if (defined($pixbuf)) { + $cache{$key} = $pixbuf; + } + + return $pixbuf; } sub get_pixbuf_thumbnail_from_entry { |