diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php
index b2fb1da7a..d0c19c616 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 {
diff --git a/tests/src/Content/Text/BBCodeTest.php b/tests/src/Content/Text/BBCodeTest.php
index e2c4d9288..730e0b6da 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,
+ ],
];
}