X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FWorker%2FSearchDirectory.php;h=0bd17e0f821b58ee0cfcba77459b1e21bf891d02;hb=40a126306621fe9eadb58101bd19a0be32e4c163;hp=7569396f6b6b5a687b0104109ee578cf2d68c934;hpb=c742c62f0aae6a033823dd34ae97426dc90e7580;p=friendica.git diff --git a/src/Worker/SearchDirectory.php b/src/Worker/SearchDirectory.php index 7569396f6b..0bd17e0f82 100644 --- a/src/Worker/SearchDirectory.php +++ b/src/Worker/SearchDirectory.php @@ -1,28 +1,39 @@ . + * */ + namespace Friendica\Worker; -use Friendica\Core\Cache\Duration; -use Friendica\Core\Config; +use Friendica\Core\Cache\Enum\Duration; use Friendica\Core\Logger; -use Friendica\Core\Protocol; use Friendica\Core\Search; -use Friendica\Database\DBA; use Friendica\DI; -use Friendica\Model\GContact; -use Friendica\Model\GServer; -use Friendica\Network\Probe; -use Friendica\Util\Network; -use Friendica\Util\Strings; +use Friendica\Model\Contact; +use Friendica\Network\HTTPClient\Client\HttpClientAccept; class SearchDirectory { // : Searches for "search pattern" in the directory. public static function execute($search) { - if (!Config::get('system', 'poco_local_search')) { + if (!DI::config()->get('system', 'poco_local_search')) { Logger::info('Local search is not enabled'); return; } @@ -36,49 +47,12 @@ class SearchDirectory } } - $x = Network::fetchUrl(Search::getGlobalDirectory() . '/lsearch?p=1&n=500&search=' . urlencode($search)); + $x = DI::httpClient()->fetch(Search::getGlobalDirectory() . '/lsearch?p=1&n=500&search=' . urlencode($search), HttpClientAccept::JSON); $j = json_decode($x); if (!empty($j->results)) { foreach ($j->results as $jj) { - // Check if the contact already exists - $gcontact = DBA::selectFirst('gcontact', ['id', 'last_contact', 'last_failure', 'updated'], ['nurl' => Strings::normaliseLink($jj->url)]); - if (DBA::isResult($gcontact)) { - Logger::info('Profile already exists', ['profile' => $jj->url, 'search' => $search]); - - if (($gcontact['last_contact'] < $gcontact['last_failure']) && - ($gcontact['updated'] < $gcontact['last_failure'])) { - continue; - } - - // Update the contact - GContact::updateFromProbe($jj->url); - continue; - } - - $server_url = GContact::getBasepath($jj->url, true); - if ($server_url != '') { - if (!GServer::check($server_url)) { - Logger::info("Friendica server doesn't answer.", ['server' => $server_url]); - continue; - } - Logger::info('Friendica server seems to be okay.', ['server' => $server_url]); - } - - $data = Probe::uri($jj->url); - if ($data['network'] == Protocol::DFRN) { - Logger::info('Add profile to local directory', ['profile' => $jj->url]); - - if ($jj->tags != '') { - $data['keywords'] = $jj->tags; - } - - $data['server_url'] = $data['baseurl']; - - GContact::update($data); - } else { - Logger::info('Profile is not responding or no Friendica contact', ['profile' => $jj->url, 'network' => $data['network']]); - } + Contact::getByURL($jj->url); } } DI::cache()->set('SearchDirectory:' . $search, time(), Duration::DAY);