namespace Friendica\Core;
-use Friendica\BaseObject;
use Friendica\Database\DBA;
+use Friendica\DI;
use Friendica\Model\Contact;
use Friendica\Model\GContact;
use Friendica\Network\HTTPException;
* - Search in the local directory
* - Search in the global directory
*/
-class Search extends BaseObject
+class Search
{
const DEFAULT_DIRECTORY = 'https://dir.friendica.social';
*/
public static function getContactsFromGlobalDirectory($search, $type = self::TYPE_ALL, $page = 1)
{
- $config = self::getApp()->getConfig();
- $server = $config->get('system', 'directory', self::DEFAULT_DIRECTORY);
+ $server = DI::config()->get('system', 'directory', self::DEFAULT_DIRECTORY);
$searchUrl = $server . '/search';
*/
public static function getContactsFromLocalDirectory($search, $type = self::TYPE_ALL, $start = 0, $itemPage = 80)
{
- $config = self::getApp()->getConfig();
+ $config = DI::config();
$diaspora = $config->get('system', 'diaspora_enabled') ? Protocol::DIASPORA : Protocol::DFRN;
$ostatus = !$config->get('system', 'ostatus_disabled') ? Protocol::OSTATUS : Protocol::DFRN;
}
while ($row = DBA::fetch($data)) {
- if (PortableContact::alternateOStatusUrl($row["nurl"])) {
- continue;
- }
-
$urlParts = parse_url($row["nurl"]);
// Ignore results that look strange.
DBA::close($data);
// Add found profiles from the global directory to the local directory
- Worker::add(PRIORITY_LOW, 'DiscoverPoCo', "dirsearch", urlencode($search));
+ Worker::add(PRIORITY_LOW, 'SearchDirectory', $search);
return $resultList;
}
$return = GContact::searchByName($search, $mode);
} else {
$p = $page > 1 ? 'p=' . $page : '';
- $curlResult = Network::curl(get_server() . '/search/people?' . $p . '&q=' . urlencode($search), false, ['accept_content' => 'application/json']);
+ $curlResult = Network::curl(self::getGlobalDirectory() . '/search/people?' . $p . '&q=' . urlencode($search), false, ['accept_content' => 'application/json']);
if ($curlResult->isSuccess()) {
$searchResult = json_decode($curlResult->getBody(), true);
if (!empty($searchResult['profiles'])) {
return $return ?? [];
}
+
+ /**
+ * Returns the global directory name, used in this node
+ *
+ * @return string
+ */
+ public static function getGlobalDirectory()
+ {
+ return Config::get('system', 'directory', self::DEFAULT_DIRECTORY);
+ }
}