From 3b1181dae658ba9deec38b7804d4b3282bb843c8 Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Tue, 8 Mar 2016 01:36:24 +0100 Subject: [PATCH] Display locally stored remote GIFs as thumbnails Many newspapers seem to use animated GIFs as catchy header images, which we would fail to show from oEmbed/OpenGraph fetching since they would want us to "use File as Thumbnail", but the only place the image filename was stored was in File_thumbnail, for the thumbnail of that file_id which had a URL set. --- classes/File.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/classes/File.php b/classes/File.php index a1a2f78906..66ebc26138 100644 --- a/classes/File.php +++ b/classes/File.php @@ -479,7 +479,13 @@ class File extends Managed_DataObject // null means "always use file as thumbnail" // false means you get choice between frozen frame or original when calling getThumbnail if (is_null(common_config('thumbnail', 'animated')) || !$force_still) { - throw new UseFileAsThumbnailException($this->id); + try { + // remote files with animated GIFs as thumbnails will match this + return File_thumbnail::byFile($this); + } catch (NoResultException $e) { + // and if it's not a remote file, it'll be safe to use the locally stored File + throw new UseFileAsThumbnailException($this->id); + } } }