From 5a7bd4884a359c60e09e39538b870f5df23cad7e Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 27 Sep 2021 20:26:08 +0000 Subject: [PATCH 1/3] Issue 10772: Avoid duplicated links in AP posts --- src/Content/Text/BBCode.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php index b2fb1da7af..d0c19c616f 100644 --- a/src/Content/Text/BBCode.php +++ b/src/Content/Text/BBCode.php @@ -424,10 +424,12 @@ class BBCode public static function removeAttachment($body, $no_link_desc = false) { return preg_replace_callback("/\s*\[attachment (.*?)\](.*?)\[\/attachment\]\s*/ism", - function ($match) use ($no_link_desc) { + function ($match) use ($body, $no_link_desc) { $attach_data = self::getAttachmentData($match[0]); if (empty($attach_data['url'])) { return $match[0]; + } elseif (strpos(str_replace($match[0], '', $body), $attach_data['url']) !== false) { + return ''; } elseif (empty($attach_data['title']) || $no_link_desc) { return " \n[url]" . $attach_data['url'] . "[/url]\n"; } else { From dd6e321c97527c0a219b1aa26d52b5dbe02c3985 Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 28 Sep 2021 03:36:48 +0000 Subject: [PATCH 2/3] Added test --- tests/src/Content/Text/BBCodeTest.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tests/src/Content/Text/BBCodeTest.php b/tests/src/Content/Text/BBCodeTest.php index e2c4d92882..3c047b7c9c 100644 --- a/tests/src/Content/Text/BBCodeTest.php +++ b/tests/src/Content/Text/BBCodeTest.php @@ -228,14 +228,14 @@ class BBCodeTest extends MockedTest 'text' => '[size=xx-large]Test text[/size]', 'try_oembed' => false, // Triggers the diaspora compatible output - 'simpleHtml' => 3, + 'simpleHtml' => BBCode::DIASPORA, ], 'bug-2199-diaspora-no-numeric-size' => [ 'expectedHtml' => 'Test text', 'text' => '[size=24]Test text[/size]', 'try_oembed' => false, // Triggers the diaspora compatible output - 'simpleHtml' => 3, + 'simpleHtml' => BBCode::DIASPORA, ], 'bug-7665-audio-tag' => [ 'expectedHtml' => '', @@ -282,6 +282,16 @@ class BBCodeTest extends MockedTest 'expectedHTML' => 'Test', 'text' => '[class=arbitrary classes]Test[/class]', ], + 'bug-10772-duplicated-links' => [ + 'expectedHTML' => 'Jetzt wird mir klar, warum Kapitalisten jedes Mal durchdrehen wenn Marx und das Kapital ins Gespräch kommt. Soziopathen.
Karl Marx - Die ursprüngliche Akkumulation
https://wohlstandfueralle.podigee.io/107-urspruengliche-akkumulation
#Podcast #Kapitalismus', + 'text' => "Jetzt wird mir klar, warum Kapitalisten jedes Mal durchdrehen wenn Marx und das Kapital ins Gespräch kommt. Soziopathen. + Karl Marx - Die ursprüngliche Akkumulation + [url=https://wohlstandfueralle.podigee.io/107-urspruengliche-akkumulation]https://wohlstandfueralle.podigee.io/107-urspruengliche-akkumulation[/url] + #[url=https://horche.demkontinuum.de/search?tag=Podcast]Podcast[/url] #[url=https://horche.demkontinuum.de/search?tag=Kapitalismus]Kapitalismus[/url] + [attachment type='link' url='https://wohlstandfueralle.podigee.io/107-urspruengliche-akkumulation' title='Ep. 107: Karl Marx #8 - Die ursprüngliche Akkumulation' publisher_name='Wohlstand für Alle' preview='https://images.podigee-cdn.net/0x,s6LXshYO7uhG23H431B30t4hxj1bQuzlTsUlze0F_-H8=/https://cdn.podigee.com/uploads/u8126/bd5fe4f4-38b7-4f3f-b269-6a0080144635.jpg']Wie der Kapitalismus funktioniert und inwieweit Menschen darin ausgebeutet werden, haben wir bereits besprochen. Immer wieder verweisen wir auch darauf, dass der Kapitalismus nicht immer schon existierte, sondern historisiert werden muss.[/attachment]", + 'try_oembed' => false, + 'simpleHtml' => BBCode::TWITTER, + ], ]; } From 0b333ef6bc94d7ee39ea5a2b1b37b47946684f91 Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 28 Sep 2021 04:27:24 +0000 Subject: [PATCH 3/3] Fixed test error --- tests/src/Content/Text/BBCodeTest.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/src/Content/Text/BBCodeTest.php b/tests/src/Content/Text/BBCodeTest.php index 3c047b7c9c..730e0b6dae 100644 --- a/tests/src/Content/Text/BBCodeTest.php +++ b/tests/src/Content/Text/BBCodeTest.php @@ -285,10 +285,10 @@ class BBCodeTest extends MockedTest 'bug-10772-duplicated-links' => [ 'expectedHTML' => 'Jetzt wird mir klar, warum Kapitalisten jedes Mal durchdrehen wenn Marx und das Kapital ins Gespräch kommt. Soziopathen.
Karl Marx - Die ursprüngliche Akkumulation
https://wohlstandfueralle.podigee.io/107-urspruengliche-akkumulation
#Podcast #Kapitalismus', 'text' => "Jetzt wird mir klar, warum Kapitalisten jedes Mal durchdrehen wenn Marx und das Kapital ins Gespräch kommt. Soziopathen. - Karl Marx - Die ursprüngliche Akkumulation - [url=https://wohlstandfueralle.podigee.io/107-urspruengliche-akkumulation]https://wohlstandfueralle.podigee.io/107-urspruengliche-akkumulation[/url] - #[url=https://horche.demkontinuum.de/search?tag=Podcast]Podcast[/url] #[url=https://horche.demkontinuum.de/search?tag=Kapitalismus]Kapitalismus[/url] - [attachment type='link' url='https://wohlstandfueralle.podigee.io/107-urspruengliche-akkumulation' title='Ep. 107: Karl Marx #8 - Die ursprüngliche Akkumulation' publisher_name='Wohlstand für Alle' preview='https://images.podigee-cdn.net/0x,s6LXshYO7uhG23H431B30t4hxj1bQuzlTsUlze0F_-H8=/https://cdn.podigee.com/uploads/u8126/bd5fe4f4-38b7-4f3f-b269-6a0080144635.jpg']Wie der Kapitalismus funktioniert und inwieweit Menschen darin ausgebeutet werden, haben wir bereits besprochen. Immer wieder verweisen wir auch darauf, dass der Kapitalismus nicht immer schon existierte, sondern historisiert werden muss.[/attachment]", +Karl Marx - Die ursprüngliche Akkumulation +[url=https://wohlstandfueralle.podigee.io/107-urspruengliche-akkumulation]https://wohlstandfueralle.podigee.io/107-urspruengliche-akkumulation[/url] +#[url=https://horche.demkontinuum.de/search?tag=Podcast]Podcast[/url] #[url=https://horche.demkontinuum.de/search?tag=Kapitalismus]Kapitalismus[/url] +[attachment type='link' url='https://wohlstandfueralle.podigee.io/107-urspruengliche-akkumulation' title='Ep. 107: Karl Marx #8 - Die ursprüngliche Akkumulation' publisher_name='Wohlstand für Alle' preview='https://images.podigee-cdn.net/0x,s6LXshYO7uhG23H431B30t4hxj1bQuzlTsUlze0F_-H8=/https://cdn.podigee.com/uploads/u8126/bd5fe4f4-38b7-4f3f-b269-6a0080144635.jpg']Wie der Kapitalismus funktioniert und inwieweit Menschen darin ausgebeutet werden, haben wir bereits besprochen. Immer wieder verweisen wir auch darauf, dass der Kapitalismus nicht immer schon existierte, sondern historisiert werden muss.[/attachment]", 'try_oembed' => false, 'simpleHtml' => BBCode::TWITTER, ],