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.
This commit is contained in:
Mikael Nordfeldth 2016-03-08 01:36:24 +01:00
parent e43fe85454
commit 3b1181dae6

View File

@ -479,7 +479,13 @@ class File extends Managed_DataObject
// null means "always use file as thumbnail" // null means "always use file as thumbnail"
// false means you get choice between frozen frame or original when calling getThumbnail // false means you get choice between frozen frame or original when calling getThumbnail
if (is_null(common_config('thumbnail', 'animated')) || !$force_still) { 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);
}
} }
} }