From 8be3c2bc99d359c2a6933de537b791dc545da470 Mon Sep 17 00:00:00 2001 From: Hannes Heute Date: Wed, 28 May 2025 20:31:36 +0200 Subject: [PATCH 1/3] Support YouTube mobile links --- src/Content/Text/BBCode.php | 2 +- src/Content/Text/Markdown.php | 1 + tests/src/Content/Text/BBCodeTest.php | 4 ++++ tests/src/Content/Text/MarkdownTest.php | 4 ++++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php index 9c999e789a3..3d02319e61c 100644 --- a/src/Content/Text/BBCode.php +++ b/src/Content/Text/BBCode.php @@ -1214,7 +1214,7 @@ class BBCode $text = preg_replace("/\[youtube\]https?:\/\/(www\.)?youtube\.com\/embed\/(.*?)\[\/youtube\]/ism", '[youtube]$2[/youtube]', $text); $text = preg_replace("/\[youtube\]https?:\/\/(www\.)?youtube\.com\/shorts\/(.*?)\[\/youtube\]/ism", '[youtube]$2[/youtube]', $text); $text = preg_replace("/\[youtube\]https?:\/\/youtu\.be\/(.*?)\[\/youtube\]/ism", '[youtube]$1[/youtube]', $text); - + $text = preg_replace("/\[youtube\]https?:\/\/m\.youtube\.com\/watch\?v\=(.*?)\[\/youtube\]/ism", '[youtube]$1[/youtube]', $text); $text = preg_replace("/\[vimeo\]https?:\/\/player\.vimeo\.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism", '[vimeo]$1[/vimeo]', $text); $text = preg_replace("/\[vimeo\]https?:\/\/vimeo\.com\/([0-9]+)(.*?)\[\/vimeo\]/ism", '[vimeo]$1[/vimeo]', $text); diff --git a/src/Content/Text/Markdown.php b/src/Content/Text/Markdown.php index 17911eae390..99d5aae89ab 100644 --- a/src/Content/Text/Markdown.php +++ b/src/Content/Text/Markdown.php @@ -125,6 +125,7 @@ class Markdown $s = BBCode::pregReplaceInTag('/\[url\=https?:\/\/(www\.)?youtube\.com\/watch\?v\=(.*?)\].*?\[\/url\]/ism', '[youtube]$2[/youtube]', 'url', $s); $s = BBCode::pregReplaceInTag('/\[url\=https?:\/\/(www\.)?youtube\.com\/embed\/(.*?)\].*?\[\/url\]/ism', '[youtube]$2[/youtube]', 'url', $s); $s = BBCode::pregReplaceInTag('/\[url\=https?:\/\/(www\.)?youtube\.com\/shorts\/(.*?)\].*?\[\/url\]/ism', '[youtube]$2[/youtube]', 'url', $s); + $s = BBCode::pregReplaceInTag('/\[url\=https?:\/\/m\.youtube\.com\/watch\?v\=(.*?)\[\/url\]/ism', '[youtube]$1[/youtube]', 'url', $s); $s = BBCode::pregReplaceInTag('/\[url\=?(.*?)\]https?:\/\/vimeo\.com\/([0-9]+)(.*?)\[\/url\]/ism', '[vimeo]$2[/vimeo]', 'url', $s); $s = BBCode::pregReplaceInTag('/\[url\=?(.*?)\]https?:\/\/player\.vimeo\.com\/video\/([0-9]+)(.*?)\[\/url\]/ism', '[vimeo]$2[/vimeo]', 'url', $s); $s = BBCode::pregReplaceInTag('/\[url\=https?:\/\/vimeo\.com\/([0-9]+)\](.*?)\[\/url\]/ism', '[vimeo]$1[/vimeo]', 'url', $s); diff --git a/tests/src/Content/Text/BBCodeTest.php b/tests/src/Content/Text/BBCodeTest.php index 26c381c429f..ba3678a780f 100644 --- a/tests/src/Content/Text/BBCodeTest.php +++ b/tests/src/Content/Text/BBCodeTest.php @@ -390,6 +390,10 @@ Karl Marx - Die ursprüngliche Akkumulation 'expectedBBCode' => '[url=https://www.youtube.com/watch?v=hfwbmTzBFT0]https://www.youtube.com/watch?v=hfwbmTzBFT0[/url]', 'text' => '[youtube]https://youtube.com/embed/hfwbmTzBFT0[/youtube]', ], + 'task-14940-youtube-mobile' => [ + 'expectedBBCode' => '[url=https://m.youtube.com/watch?v=hfwbmTzBFT0]https://m.youtube.com/watch?v=hfwbmTzBFT0[/url]', + 'text' => '[youtube]https://www.youtube.com/watch?v=hfwbmTzBFT0[/youtube]', + ], 'task-14940-vimeo' => [ 'expectedBBCode' => '[url=https://vimeo.com/2345345]https://vimeo.com/2345345[/url]', 'text' => '[vimeo]https://vimeo.com/2345345[/vimeo]', diff --git a/tests/src/Content/Text/MarkdownTest.php b/tests/src/Content/Text/MarkdownTest.php index c372180df5a..0e4552dcbef 100644 --- a/tests/src/Content/Text/MarkdownTest.php +++ b/tests/src/Content/Text/MarkdownTest.php @@ -78,6 +78,10 @@ class MarkdownTest extends FixtureTestCase 'expectedBBCode' => '[youtube]hfwbmTzBFT0[/youtube]', 'markdown' => '[url=https://youtube.com/embed/hfwbmTzBFT0]https://youtube.com/embed/hfwbmTzBFT0[/url]', ], + 'task-14940-youtube-mobile' => [ + 'expectedBBCode' => '[youtube]hfwbmTzBFT0[/youtube]', + 'markdown' => '[url=https://m.youtube.com/watch?v=hfwbmTzBFT0]https://m.youtube.com/watch?v=hfwbmTzBFT0[/url]', + ], // @todo - should we really ignore the URL content in favor of parsing the link of the body? 'task-14940-vimeo-custom-url' => [ 'expectedBBCode' => '[vimeo]2345345[/vimeo]', From 1e818053f6c7fdb883c8c48cc7eef97e4634bd33 Mon Sep 17 00:00:00 2001 From: Hannes Heute Date: Wed, 28 May 2025 20:53:39 +0200 Subject: [PATCH 2/3] fix test --- tests/src/Content/Text/BBCodeTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/src/Content/Text/BBCodeTest.php b/tests/src/Content/Text/BBCodeTest.php index ba3678a780f..a4b740703dd 100644 --- a/tests/src/Content/Text/BBCodeTest.php +++ b/tests/src/Content/Text/BBCodeTest.php @@ -392,7 +392,7 @@ Karl Marx - Die ursprüngliche Akkumulation ], 'task-14940-youtube-mobile' => [ 'expectedBBCode' => '[url=https://m.youtube.com/watch?v=hfwbmTzBFT0]https://m.youtube.com/watch?v=hfwbmTzBFT0[/url]', - 'text' => '[youtube]https://www.youtube.com/watch?v=hfwbmTzBFT0[/youtube]', + 'text' => '[youtube]https://m.youtube.com/watch?v=hfwbmTzBFT0[/youtube]', ], 'task-14940-vimeo' => [ 'expectedBBCode' => '[url=https://vimeo.com/2345345]https://vimeo.com/2345345[/url]', From 3c4ae5a124f695751b64241a935e2d7d2a36070f Mon Sep 17 00:00:00 2001 From: Hannes Heute Date: Thu, 29 May 2025 20:48:22 +0200 Subject: [PATCH 3/3] fix tests.. again --- src/Content/Text/Markdown.php | 2 +- tests/src/Content/Text/BBCodeTest.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Content/Text/Markdown.php b/src/Content/Text/Markdown.php index 99d5aae89ab..c47cff66e38 100644 --- a/src/Content/Text/Markdown.php +++ b/src/Content/Text/Markdown.php @@ -125,7 +125,7 @@ class Markdown $s = BBCode::pregReplaceInTag('/\[url\=https?:\/\/(www\.)?youtube\.com\/watch\?v\=(.*?)\].*?\[\/url\]/ism', '[youtube]$2[/youtube]', 'url', $s); $s = BBCode::pregReplaceInTag('/\[url\=https?:\/\/(www\.)?youtube\.com\/embed\/(.*?)\].*?\[\/url\]/ism', '[youtube]$2[/youtube]', 'url', $s); $s = BBCode::pregReplaceInTag('/\[url\=https?:\/\/(www\.)?youtube\.com\/shorts\/(.*?)\].*?\[\/url\]/ism', '[youtube]$2[/youtube]', 'url', $s); - $s = BBCode::pregReplaceInTag('/\[url\=https?:\/\/m\.youtube\.com\/watch\?v\=(.*?)\[\/url\]/ism', '[youtube]$1[/youtube]', 'url', $s); + $s = BBCode::pregReplaceInTag('/\[url\=https?:\/\/m\.youtube\.com\/watch\?v\=(.*?)\].*?\[\/url\]/ism', '[youtube]$1[/youtube]', 'url', $s); $s = BBCode::pregReplaceInTag('/\[url\=?(.*?)\]https?:\/\/vimeo\.com\/([0-9]+)(.*?)\[\/url\]/ism', '[vimeo]$2[/vimeo]', 'url', $s); $s = BBCode::pregReplaceInTag('/\[url\=?(.*?)\]https?:\/\/player\.vimeo\.com\/video\/([0-9]+)(.*?)\[\/url\]/ism', '[vimeo]$2[/vimeo]', 'url', $s); $s = BBCode::pregReplaceInTag('/\[url\=https?:\/\/vimeo\.com\/([0-9]+)\](.*?)\[\/url\]/ism', '[vimeo]$1[/vimeo]', 'url', $s); diff --git a/tests/src/Content/Text/BBCodeTest.php b/tests/src/Content/Text/BBCodeTest.php index a4b740703dd..c7278438fe2 100644 --- a/tests/src/Content/Text/BBCodeTest.php +++ b/tests/src/Content/Text/BBCodeTest.php @@ -391,7 +391,7 @@ Karl Marx - Die ursprüngliche Akkumulation 'text' => '[youtube]https://youtube.com/embed/hfwbmTzBFT0[/youtube]', ], 'task-14940-youtube-mobile' => [ - 'expectedBBCode' => '[url=https://m.youtube.com/watch?v=hfwbmTzBFT0]https://m.youtube.com/watch?v=hfwbmTzBFT0[/url]', + 'expectedBBCode' => '[url=https://www.youtube.com/watch?v=hfwbmTzBFT0]https://www.youtube.com/watch?v=hfwbmTzBFT0[/url]', 'text' => '[youtube]https://m.youtube.com/watch?v=hfwbmTzBFT0[/youtube]', ], 'task-14940-vimeo' => [