Merge branch 'vreddit_fallback_url' of wn/tt-rss into master
This commit is contained in:
commit
af13f3009c
|
@ -159,7 +159,34 @@ class Af_RedditImgur extends Plugin {
|
|||
$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);
|
||||
$found = 1;
|
||||
|
@ -452,8 +479,8 @@ class Af_RedditImgur extends Plugin {
|
|||
}
|
||||
}
|
||||
|
||||
private function get_content_type($url, $useragent = SELF_USER_AGENT) {
|
||||
$content_type = false;
|
||||
private function get_header($url, $useragent = SELF_USER_AGENT, $header) {
|
||||
$ret = false;
|
||||
|
||||
if (function_exists("curl_init") && !defined("NO_CURL")) {
|
||||
$ch = curl_init($url);
|
||||
|
@ -465,10 +492,18 @@ class Af_RedditImgur extends Plugin {
|
|||
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue