diff --git a/classes/feeds.php b/classes/feeds.php index 12d6dd65f..42673ca95 100755 --- a/classes/feeds.php +++ b/classes/feeds.php @@ -1751,9 +1751,10 @@ class Feeds extends Handler_Protected { author, score, (SELECT count(label_id) FROM ttrss_user_labels2 WHERE article_id = ttrss_entries.id) AS num_labels, (SELECT count(id) FROM ttrss_enclosures WHERE post_id = ttrss_entries.id) AS num_enclosures - FROM ttrss_entries, ttrss_user_entries, ttrss_tags, ttrss_feeds + FROM ttrss_entries, + ttrss_user_entries LEFT JOIN ttrss_feeds ON (ttrss_feeds.id = ttrss_user_entries.feed_id), + ttrss_tags WHERE - ttrss_feeds.id = ttrss_user_entries.feed_id AND ref_id = ttrss_entries.id AND ttrss_user_entries.owner_uid = ".$pdo->quote($owner_uid)." AND post_int_id = int_id AND diff --git a/classes/urlhelper.php b/classes/urlhelper.php index 46d80a0e6..edfb2ad73 100644 --- a/classes/urlhelper.php +++ b/classes/urlhelper.php @@ -487,4 +487,26 @@ class UrlHelper { } } + public static function url_to_youtube_vid($url) { + $url = str_replace("youtube.com", "youtube-nocookie.com", $url); + + $regexps = [ + "/\/\/www\.youtube-nocookie\.com\/v\/([\w-]+)/", + "/\/\/www\.youtube-nocookie\.com\/embed\/([\w-]+)/", + "/\/\/www\.youtube-nocookie\.com\/watch?v=([\w-]+)/", + "/\/\/youtu.be\/([\w-]+)/", + ]; + + foreach ($regexps as $re) { + $matches = []; + + if (preg_match($re, $url, $matches)) { + return $matches[1]; + } + } + + return false; + } + + } diff --git a/js/Article.js b/js/Article.js index be06e8f73..a3a75ba21 100644 --- a/js/Article.js +++ b/js/Article.js @@ -282,9 +282,13 @@ const Article = { console.log("packing", row.id); row.setAttribute("data-is-packed", "1"); - row.querySelector(".content-inner").innerHTML = `
- ${__("Loading, please wait...")} -
` + const content_inner = row.querySelector(".content-inner"); + + // missing in unexpanded mode + if (content_inner) + content_inner.innerHTML = `
+ ${__("Loading, please wait...")} +
` } }, view: function (id, no_expand) { diff --git a/plugins/af_redditimgur/init.php b/plugins/af_redditimgur/init.php index b16b679af..3b4094b1b 100755 --- a/plugins/af_redditimgur/init.php +++ b/plugins/af_redditimgur/init.php @@ -425,13 +425,7 @@ class Af_RedditImgur extends Plugin { } $matches = array(); - if (!$found && (preg_match("/youtube\.com\/v\/([\w-]+)/", $entry_href, $matches) || - preg_match("/youtube\.com\/.*?[\&\?]v=([\w-]+)/", $entry_href, $matches) || - preg_match("/youtube\.com\/embed\/([\w-]+)/", $entry_href, $matches) || - preg_match("/youtube\.com\/watch\?v=([\w-]+)/", $entry_href, $matches) || - preg_match("/\/\/youtu.be\/([\w-]+)/", $entry_href, $matches))) { - - $vid_id = $matches[1]; + if (!$found && $vid_id = UrlHelper::url_to_youtube_vid($entry_href)) { Debug::log("Handling as youtube: $vid_id", Debug::LOG_VERBOSE); diff --git a/plugins/af_youtube_embed/init.php b/plugins/af_youtube_embed/init.php index 95ab0b9d5..72d25a826 100644 --- a/plugins/af_youtube_embed/init.php +++ b/plugins/af_youtube_embed/init.php @@ -16,18 +16,16 @@ class Af_Youtube_Embed extends Plugin { } function hook_iframe_whitelisted($src) { - return in_array($src, ["www.youtube.com", "youtube.com", "youtu.be"]); + return in_array($src, ["www.youtube.com", "youtube.com", + "www.youtube-nocookie.com", "youtube-nocookie.com", + "youtu.be"]); } function hook_render_enclosure($entry, $hide_images) { - $matches = array(); + $url = $entry["content_url"]; - if (preg_match("/\/\/www\.youtube\.com\/v\/([\w-]+)/", $entry["content_url"], $matches) || - preg_match("/\/\/www\.youtube\.com\/watch?v=([\w-]+)/", $entry["content_url"], $matches) || - preg_match("/\/\/youtu.be\/([\w-]+)/", $entry["content_url"], $matches)) { - - $vid_id = $matches[1]; + if ($vid_id = UrlHelper::url_to_youtube_vid($url)) { return "