Merge branch 'vreddit_fallback_url' of wn/tt-rss into master

This commit is contained in:
fox 2017-09-18 04:14:57 +00:00 committed by Gogs
commit af13f3009c
1 changed files with 40 additions and 5 deletions

View File

@ -159,7 +159,34 @@ class Af_RedditImgur extends Plugin {
$poster_url = false; $poster_url = false;
} }
$source_stream = "https://v.redd.it/" . $matches[1] . "/DASH_600_K"; // Get original article URL from v.redd.it redirects
$source_article_url = $this->get_location($matches[0]);
_debug("Resolved ".$matches[0]." to ".$source_article_url, $debug);
$source_stream = false;
if ($source_article_url) {
$j = json_decode(fetch_file_contents($source_article_url.".json"), true);
if ($j) {
foreach ($j as $listing) {
foreach ($listing["data"]["children"] as $child) {
if ($child["data"]["url"] == $matches[0]) {
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); $this->handle_as_video($doc, $entry, $source_stream, $poster_url);
$found = 1; $found = 1;
@ -452,8 +479,8 @@ class Af_RedditImgur extends Plugin {
} }
} }
private function get_content_type($url, $useragent = SELF_USER_AGENT) { private function get_header($url, $useragent = SELF_USER_AGENT, $header) {
$content_type = false; $ret = false;
if (function_exists("curl_init") && !defined("NO_CURL")) { if (function_exists("curl_init") && !defined("NO_CURL")) {
$ch = curl_init($url); $ch = curl_init($url);
@ -465,10 +492,18 @@ class Af_RedditImgur extends Plugin {
curl_setopt($ch, CURLOPT_USERAGENT, $useragent); curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
@curl_exec($ch); @curl_exec($ch);
$content_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE); $ret = curl_getinfo($ch, $header);
} }
return $content_type; return $ret;
}
private function get_content_type($url, $useragent = SELF_USER_AGENT) {
return $this->get_header($url, $useragent, CURLINFO_CONTENT_TYPE);
}
private function get_location($url, $useragent = SELF_USER_AGENT) {
return $this->get_header($url, $useragent, CURLINFO_EFFECTIVE_URL);
} }
/** /**