diff --git a/src/Content/Text/BBCode.php b/src/Content/Text/BBCode.php
index 2ed4e57b3c..a9c137b6a0 100644
--- a/src/Content/Text/BBCode.php
+++ b/src/Content/Text/BBCode.php
@@ -1971,13 +1971,20 @@ class BBCode
$text = preg_replace("/([#])\[url\=(.*?)\](.*?)\[\/url\]/ism",
'$1$3',
$text);
- } elseif (in_array($simple_html, [self::INTERNAL, self::EXTERNAL, self::API])) {
+ } elseif (in_array($simple_html, [self::INTERNAL, self::EXTERNAL])) {
$text = preg_replace("/([@!])\[url\=(.*?)\](.*?)\[\/url\]/ism",
'$1$3',
$text);
$text = preg_replace("/([#])\[url\=(.*?)\](.*?)\[\/url\]/ism",
'$1$3',
$text);
+ } elseif ($simple_html == self::API) {
+ $text = preg_replace("/([@!])\[url\=(.*?)\](.*?)\[\/url\]/ism",
+ '$1$3',
+ $text);
+ $text = preg_replace("/([#])\[url\=(.*?)\](.*?)\[\/url\]/ism",
+ '$1$3',
+ $text);
} else {
$text = preg_replace("/([#@!])\[url\=(.*?)\](.*?)\[\/url\]/ism", '$1$3', $text);
}
diff --git a/src/Module/Api/Mastodon/Accounts/Search.php b/src/Module/Api/Mastodon/Accounts/Search.php
index 71f6f82dab..5e8e647ea5 100644
--- a/src/Module/Api/Mastodon/Accounts/Search.php
+++ b/src/Module/Api/Mastodon/Accounts/Search.php
@@ -52,27 +52,15 @@ class Search extends BaseApi
$accounts = [];
- if ($request['resolve']) {
- if ((strrpos($request['q'], '@') > 0) || Network::isValidHttpUrl($request['q'])) {
- $results = CoreSearch::getContactsFromProbe($request['q']);
- }
+ if ((strrpos($request['q'], '@') > 0) || Network::isValidHttpUrl($request['q'])) {
+ $id = Contact::getIdForURL($request['q'], 0, $request['resolve'] ? null : false);
- if (!empty($results)) {
- $counter = 0;
- foreach ($results->getResults() as $result) {
- if (++$counter > $request['limit']) {
- continue;
- }
- if ($result instanceof ContactResult) {
- $id = Contact::getIdForURL($result->getUrl(), 0, false);
-
- $accounts[] = DI::mstdnAccount()->createFromContactId($id, $uid);
- }
- }
+ if (!empty($id)) {
+ $accounts[] = DI::mstdnAccount()->createFromContactId($id, $uid);
}
}
- if (count($accounts) < $request['limit']) {
+ if (empty($accounts)) {
$contacts = Contact::searchByName($request['q'], '', $request['following'] ? $uid : 0, $request['limit']);
foreach ($contacts as $contact) {
$accounts[] = DI::mstdnAccount()->createFromContactId($contact['id'], $uid);
diff --git a/src/Module/Api/Mastodon/Search.php b/src/Module/Api/Mastodon/Search.php
index b21ff50f29..3a4999242e 100644
--- a/src/Module/Api/Mastodon/Search.php
+++ b/src/Module/Api/Mastodon/Search.php
@@ -84,28 +84,16 @@ class Search extends BaseApi
{
$accounts = [];
- if ($resolve) {
- if ((strrpos($q, '@') > 0) || Network::isValidHttpUrl($q)) {
- $results = CoreSearch::getContactsFromProbe($q);
- }
+ if ((strrpos($q, '@') > 0) || Network::isValidHttpUrl($q)) {
+ $id = Contact::getIdForURL($q, 0, $resolve ? null : false);
- if (!empty($results)) {
- $counter = 0;
- foreach ($results->getResults() as $result) {
- if (++$counter > $limit) {
- continue;
- }
- if ($result instanceof ContactResult) {
- $id = Contact::getIdForURL($result->getUrl(), 0, false);
-
- $accounts[] = DI::mstdnAccount()->createFromContactId($id, $uid);
- }
- }
+ if (!empty($id)) {
+ $accounts[] = DI::mstdnAccount()->createFromContactId($id, $uid);
}
}
- if (count($accounts) < $limit) {
- $contacts = Contact::searchByName($q, '', $following ? $uid : 0, $limit - count($accounts), $offset);
+ if (empty($accounts)) {
+ $contacts = Contact::searchByName($q, '', $following ? $uid : 0, $limit, $offset);
foreach ($contacts as $contact) {
$accounts[] = DI::mstdnAccount()->createFromContactId($contact['id'], $uid);
}