mirror of
https://github.com/friendica/friendica
synced 2025-04-23 07:10:14 +00:00
Issue 12096: Improve account search
This commit is contained in:
parent
c107c5ff0d
commit
70d0f087b7
3 changed files with 24 additions and 39 deletions
|
@ -51,19 +51,11 @@ class Search extends BaseApi
|
|||
|
||||
$accounts = [];
|
||||
|
||||
if (!$request['following']) {
|
||||
if ((strrpos($request['q'], '@') > 0) && $request['resolve']) {
|
||||
if ($request['resolve']) {
|
||||
if ((strrpos($request['q'], '@') > 0)) {
|
||||
$results = CoreSearch::getContactsFromProbe($request['q']);
|
||||
}
|
||||
|
||||
if (empty($results)) {
|
||||
if (DI::config()->get('system', 'poco_local_search')) {
|
||||
$results = CoreSearch::getContactsFromLocalDirectory($request['q'], CoreSearch::TYPE_ALL, 0, $request['limit']);
|
||||
} elseif (CoreSearch::getGlobalDirectory()) {
|
||||
$results = CoreSearch::getContactsFromGlobalDirectory($request['q'], CoreSearch::TYPE_ALL, 1);
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($results)) {
|
||||
$counter = 0;
|
||||
foreach ($results->getResults() as $result) {
|
||||
|
@ -77,17 +69,11 @@ class Search extends BaseApi
|
|||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$contacts = Contact::searchByName($request['q'], '', $uid);
|
||||
}
|
||||
|
||||
$counter = 0;
|
||||
if (count($accounts) < $request['limit']) {
|
||||
$contacts = Contact::searchByName($request['q'], '', $request['following'] ? $uid : 0, $request['limit']);
|
||||
foreach ($contacts as $contact) {
|
||||
if (!in_array($contact['rel'], [Contact::SHARING, Contact::FRIEND])) {
|
||||
continue;
|
||||
}
|
||||
if (++$counter > $request['limit']) {
|
||||
continue;
|
||||
}
|
||||
$accounts[] = DI::mstdnAccount()->createFromContactId($contact['id'], $uid);
|
||||
}
|
||||
DBA::close($contacts);
|
||||
|
|
|
@ -83,18 +83,11 @@ class Search extends BaseApi
|
|||
{
|
||||
$accounts = [];
|
||||
|
||||
if (!$following) {
|
||||
if ((strrpos($q, '@') > 0) && $resolve) {
|
||||
if ($resolve) {
|
||||
if ((strrpos($q, '@') > 0)) {
|
||||
$results = CoreSearch::getContactsFromProbe($q);
|
||||
}
|
||||
|
||||
if (empty($results)) {
|
||||
if (DI::config()->get('system', 'poco_local_search')) {
|
||||
$results = CoreSearch::getContactsFromLocalDirectory($q, CoreSearch::TYPE_ALL, 0, $limit);
|
||||
} elseif (CoreSearch::getGlobalDirectory()) {
|
||||
$results = CoreSearch::getContactsFromGlobalDirectory($q, CoreSearch::TYPE_ALL, 1);
|
||||
}
|
||||
}
|
||||
if (!empty($results)) {
|
||||
$counter = 0;
|
||||
foreach ($results->getResults() as $result) {
|
||||
|
@ -108,17 +101,11 @@ class Search extends BaseApi
|
|||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$contacts = Contact::searchByName($q, '', $uid);
|
||||
}
|
||||
|
||||
$counter = 0;
|
||||
if (count($accounts) < $limit) {
|
||||
$contacts = Contact::searchByName($q, '', $following ? $uid : 0, $limit - count($accounts), $offset);
|
||||
foreach ($contacts as $contact) {
|
||||
if (!in_array($contact['rel'], [Contact::SHARING, Contact::FRIEND])) {
|
||||
continue;
|
||||
}
|
||||
if (++$counter > $limit) {
|
||||
continue;
|
||||
}
|
||||
$accounts[] = DI::mstdnAccount()->createFromContactId($contact['id'], $uid);
|
||||
}
|
||||
DBA::close($contacts);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue