aboutsummaryrefslogtreecommitdiffstats
path: root/bin/gtk-fair-viewer
diff options
context:
space:
mode:
authortrizen <trizen@protonmail.com>2020-12-06 00:55:55 +0200
committerJesús <heckyel@hyperbola.info>2020-12-15 13:05:10 -0500
commit8cf51536d781623cba4ffffb7d6ac46d484065ee (patch)
treedb9df22065cd16ab47a5fb73882a898644c6e847 /bin/gtk-fair-viewer
parent7d4bb0c1ede27209aa030c0214e1f2a53e8a9183 (diff)
downloadfair-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-xbin/gtk-fair-viewer24
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 {