diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php
index 8a029fe534..c3ad23941d 100644
--- a/src/Content/Text/BBCode.php
+++ b/src/Content/Text/BBCode.php
@@ -573,17 +573,17 @@ class BBCode extends BaseObject
* Note: Can produce a [bookmark] tag in the returned string
*
* @brief Processes [attachment] tags
- * @param string $return
+ * @param string $text
* @param bool|int $simplehtml
* @param bool $tryoembed
* @return string
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
*/
- private static function convertAttachment($return, $simplehtml = false, $tryoembed = true)
+ private static function convertAttachment($text, $simplehtml = false, $tryoembed = true)
{
- $data = self::getAttachmentData($return);
+ $data = self::getAttachmentData($text);
if (empty($data) || empty($data['url'])) {
- return $return;
+ return $text;
}
if (isset($data['title'])) {
@@ -600,7 +600,10 @@ class BBCode extends BaseObject
$return = '';
if (in_array($simplehtml, [7, 9])) {
- $return = self::convertUrlForActivityPub($data['url']);
+ // Only add the link when it isn't already part of the body
+ if (substr_count($text, $data['url']) == 1) {
+ $return = self::convertUrlForActivityPub($data['url']);
+ }
} elseif (($simplehtml != 4) && ($simplehtml != 0)) {
$return = sprintf('%s
', $data['url'], $data['title']);
} else {
@@ -1748,7 +1751,7 @@ class BBCode extends BaseObject
$text = preg_replace_callback("/(?:#\[url\=.*?\]|\[url\=.*?\]#)(.*?)\[\/url\]/ism", function($matches) {
return '#'
+ . '" class="tag" rel="tag" title="' . XML::escape($matches[1]) . '">'
. XML::escape($matches[1])
. '';
}, $text);