From 4bb651a656bdddc25454554a4dfec6a8d10697a8 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 10 Sep 2018 16:09:38 +0300 Subject: [PATCH] af_redditimgur: check gfycat content type before embedding, add generic catchall embedding for og:video metadata --- plugins/af_redditimgur/init.php | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/plugins/af_redditimgur/init.php b/plugins/af_redditimgur/init.php index 270f1beb2..be3a5108e 100755 --- a/plugins/af_redditimgur/init.php +++ b/plugins/af_redditimgur/init.php @@ -135,8 +135,12 @@ class Af_RedditImgur extends Plugin { $source_stream = 'https://giant.gfycat.com/' . $matches[2] . '.mp4'; $poster_url = 'https://thumbs.gfycat.com/' . $matches[2] . '-mobile.jpg'; - $this->handle_as_video($doc, $entry, $source_stream, $poster_url); - $found = 1; + $content_type = $this->get_content_type($source_stream); + + if (strpos($content_type, "video/") !== FALSE) { + $this->handle_as_video($doc, $entry, $source_stream, $poster_url); + $found = 1; + } } if (!$found && preg_match("/https?:\/\/v\.redd\.it\/(.*)$/i", $entry->getAttribute("href"), $matches)) { @@ -303,8 +307,25 @@ class Af_RedditImgur extends Plugin { $cxpath = new DOMXPath($cdoc); $og_image = $cxpath->query("//meta[@property='og:image']")->item(0); + $og_video = $cxpath->query("//meta[@property='og:video']")->item(0); - if ($og_image) { + if ($og_video) { + + $source_stream = $og_video->getAttribute("content"); + + if ($source_stream) { + + if ($og_image) { + $poster_url = $og_image->getAttribute("content"); + } else { + $poster_url = false; + } + + $this->handle_as_video($doc, $entry, $source_stream, $poster_url); + $found = true; + } + + } else if ($og_image) { $og_src = $og_image->getAttribute("content");