summaryrefslogtreecommitdiff
path: root/classes/article.php
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2019-08-14 17:04:14 +0300
committerAndrew Dolgov <[email protected]>2019-08-14 17:04:14 +0300
commitd4df57e1a4a54cfa5bc303eaae3716af2cab1b17 (patch)
tree7ccc58b6cf9d1b703ca287658f38976d0d8cb052 /classes/article.php
parent68e2b05f657dca2a389cb9d585215c126e5da290 (diff)
Article::get_article_image() - also return stream URI if possible
Diffstat (limited to 'classes/article.php')
-rwxr-xr-xclasses/article.php27
1 files changed, 21 insertions, 6 deletions
diff --git a/classes/article.php b/classes/article.php
index f22c28066..e35381d0f 100755
--- a/classes/article.php
+++ b/classes/article.php
@@ -826,6 +826,8 @@ class Article extends Handler_Protected {
static function get_article_image($enclosures, $content, $site_url) {
$article_image = false;
+ $article_stream = false;
+
$tmpdoc = new DOMDocument();
if (@$tmpdoc->loadHTML('<?xml encoding="UTF-8">' . mb_substr($content, 0, 131070))) {
@@ -837,10 +839,18 @@ class Article extends Handler_Protected {
$matches = [];
if ($rrr = preg_match("/\/embed\/([\w-]+)/", $e->getAttribute("src"), $matches)) {
$article_image = "https://img.youtube.com/vi/" . $matches[1] . "/hqdefault.jpg";
+ $article_stream = "https://youtu.be/" . $matches[1];
break;
}
} else if ($e->nodeName == "video") {
$article_image = $e->getAttribute("poster");
+
+ $src = $tmpxpath->query("//source[@src]", $e)->item(0);
+
+ if ($src) {
+ $article_stream = $src->getAttribute("src");
+ }
+
break;
} else if ($e->nodeName == 'img') {
if (mb_strpos($e->getAttribute("src"), "data:") !== 0) {
@@ -852,15 +862,20 @@ class Article extends Handler_Protected {
}
if ($article_image)
- return rewrite_relative_url($site_url, $article_image);
+ $article_image = rewrite_relative_url($site_url, $article_image);
- foreach ($enclosures as $enc) {
- if (strpos($enc["content_type"], "image/") !== FALSE) {
- return rewrite_relative_url($site_url, $enc["content_url"]);
+ if ($article_stream)
+ $article_stream = rewrite_relative_url($site_url, $article_stream);
+
+ if (!$article_image)
+ foreach ($enclosures as $enc) {
+ if (strpos($enc["content_type"], "image/") !== FALSE) {
+ $article_image = rewrite_relative_url($site_url, $enc["content_url"]);
+ break;
+ }
}
- }
- return false;
+ return [$article_image, $article_stream];
}
}