From 81d83a68cdb383992a2759dcfdcb08a4d79994ff Mon Sep 17 00:00:00 2001 From: wn_ Date: Sun, 17 Sep 2017 01:18:05 -0500 Subject: [PATCH] af_redditimgur: Use v.redd.it fallback URL when possible. --- plugins/af_redditimgur/init.php | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/plugins/af_redditimgur/init.php b/plugins/af_redditimgur/init.php index c872b429..9d10c09b 100755 --- a/plugins/af_redditimgur/init.php +++ b/plugins/af_redditimgur/init.php @@ -159,7 +159,31 @@ class Af_RedditImgur extends Plugin { $poster_url = false; } - $source_stream = "https://v.redd.it/" . $matches[1] . "/DASH_600_K"; + // IMPORTANT: This assumes the article GUID is kept in "owner_uid,entry_guid" format, and + // Reddit feed entries will keep the element (so get_id returns it). + $feeditem_id = explode(",", $article["guid"])[1]; + $source_stream = false; + $j = json_decode(fetch_file_contents($article["link"].".json"), true); + + if ($j) { + foreach ($j as $listing) { + foreach ($listing["data"]["children"] as $child) { + // Found the child object corresponding to the article (e.g. same name+ID like "t3_70j63a"). + if ($child["data"]["name"] == $feeditem_id) { + try { + $source_stream = $child["data"]["media"]["reddit_video"]["fallback_url"]; + } + catch (Exception $e) { + } + break 2; + } + } + } + } + + if (!$source_stream) { + $source_stream = "https://v.redd.it/" . $matches[1] . "/DASH_600_K"; + } $this->handle_as_video($doc, $entry, $source_stream, $poster_url); $found = 1; -- 2.39.5