af_redditimgur: instead of generating potentially blacklisted iframes (i.e. huge black boxes),
save found youtube videos as post enclosures for af_youtube_... plugins to deal with later, if enabled
This commit is contained in:
parent
88a7130d79
commit
e8f78181f1
|
@ -7,6 +7,7 @@ class Af_RedditImgur extends Plugin {
|
||||||
private $dump_json_data = false;
|
private $dump_json_data = false;
|
||||||
private $fallback_preview_urls = [];
|
private $fallback_preview_urls = [];
|
||||||
private $default_max_score = 100;
|
private $default_max_score = 100;
|
||||||
|
private $generated_enclosures = [];
|
||||||
|
|
||||||
function about() {
|
function about() {
|
||||||
return array(null,
|
return array(null,
|
||||||
|
@ -247,6 +248,8 @@ class Af_RedditImgur extends Plugin {
|
||||||
$link_flairs = [];
|
$link_flairs = [];
|
||||||
$apply_nsfw_tags = FeedItem_Common::normalize_categories($this->host->get_array($this, "apply_nsfw_tags", []));
|
$apply_nsfw_tags = FeedItem_Common::normalize_categories($this->host->get_array($this, "apply_nsfw_tags", []));
|
||||||
|
|
||||||
|
$this->generated_enclosures = [];
|
||||||
|
|
||||||
// embed anchor element, before reddit <table> post layout
|
// embed anchor element, before reddit <table> post layout
|
||||||
$anchor = $xpath->query('//body/*')->item(0);
|
$anchor = $xpath->query('//body/*')->item(0);
|
||||||
|
|
||||||
|
@ -432,24 +435,11 @@ class Af_RedditImgur extends Plugin {
|
||||||
|
|
||||||
Debug::log("Handling as youtube: $vid_id", Debug::LOG_VERBOSE);
|
Debug::log("Handling as youtube: $vid_id", Debug::LOG_VERBOSE);
|
||||||
|
|
||||||
$iframe = $doc->createElement("iframe");
|
/* normalize video URL for af_youtube_... plugins */
|
||||||
$iframe->setAttribute("class", "youtube-player");
|
$video_url = "https://www.youtube.com/v/$vid_id";
|
||||||
$iframe->setAttribute("type", "text/html");
|
|
||||||
$iframe->setAttribute("width", "640");
|
|
||||||
$iframe->setAttribute("height", "385");
|
|
||||||
$iframe->setAttribute("src", "https://www.youtube.com/embed/$vid_id");
|
|
||||||
$iframe->setAttribute("allowfullscreen", "1");
|
|
||||||
$iframe->setAttribute("frameborder", "0");
|
|
||||||
|
|
||||||
//$br = $doc->createElement('br');
|
/* push generated video URL to enclosures so that youtube embed plugins would deal with it later (if enabled) */
|
||||||
//$entry->parentNode->insertBefore($iframe, $entry);
|
$this->generated_enclosures[] = [$video_url, "text/html", null, null, '', ''];
|
||||||
//$entry->parentNode->insertBefore($br, $entry);
|
|
||||||
|
|
||||||
// reparent generated iframe because it doesn't scale well inside <td>
|
|
||||||
if ($anchor)
|
|
||||||
$anchor->parentNode->insertBefore($iframe, $anchor);
|
|
||||||
else
|
|
||||||
$entry->parentNode->insertBefore($iframe, $entry);
|
|
||||||
|
|
||||||
$found = true;
|
$found = true;
|
||||||
}
|
}
|
||||||
|
@ -635,7 +625,7 @@ class Af_RedditImgur extends Plugin {
|
||||||
|
|
||||||
if ($node && $found) {
|
if ($node && $found) {
|
||||||
$article["content"] = $doc->saveHTML($node);
|
$article["content"] = $doc->saveHTML($node);
|
||||||
$article["enclosures"] = [];
|
$article["enclosures"] = $this->generated_enclosures;
|
||||||
} else if ($content_link) {
|
} else if ($content_link) {
|
||||||
$article = $this->readability($article, $content_link->getAttribute("href"), $doc, $xpath);
|
$article = $this->readability($article, $content_link->getAttribute("href"), $doc, $xpath);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue