X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FWorker%2FDiscoverPoCo.php;h=c1583888c72ecb8b3efb13725b323ab79fe867d6;hb=ebc97ba8fe80442ca817bfe8f79b32588c2573ef;hp=b3c03e905054b8c03c1d743fcdb4cd3365045281;hpb=bc58e8d3be1fe238d110d269afc312908f572343;p=friendica.git diff --git a/src/Worker/DiscoverPoCo.php b/src/Worker/DiscoverPoCo.php index b3c03e9050..c1583888c7 100644 --- a/src/Worker/DiscoverPoCo.php +++ b/src/Worker/DiscoverPoCo.php @@ -6,15 +6,17 @@ namespace Friendica\Worker; use Friendica\Core\Cache; use Friendica\Core\Config; +use Friendica\Core\Protocol; use Friendica\Core\Worker; -use Friendica\Database\DBM; +use Friendica\Database\DBA; use Friendica\Model\GContact; use Friendica\Network\Probe; use Friendica\Protocol\PortableContact; +use Friendica\Util\DateTimeFormat; +use Friendica\Util\Network; -require_once 'include/datetime.php'; - -class DiscoverPoCo { +class DiscoverPoCo +{ /// @todo Clean up this mess of a parameter hell and split it in several classes public static function execute($command = '', $param1 = '', $param2 = '', $param3 = '', $param4 = '') { @@ -30,6 +32,8 @@ class DiscoverPoCo { - check_profile: Update remote profile data */ + $search = ""; + $mode = 0; if ($command == "dirsearch") { $search = urldecode($param1); $mode = 1; @@ -47,10 +51,7 @@ class DiscoverPoCo { $mode = 7; } elseif ($command == "check_profile") { $mode = 8; - } elseif ($command == '') { - $search = ""; - $mode = 0; - } else { + } elseif ($command !== "") { logger("Unknown or missing parameter ".$command."\n"); return; } @@ -118,7 +119,7 @@ class DiscoverPoCo { private static function updateServer() { $r = q("SELECT `url`, `created`, `last_failure`, `last_contact` FROM `gserver` ORDER BY rand()"); - if (!DBM::is_result($r)) { + if (!DBA::isResult($r)) { return; } @@ -147,8 +148,8 @@ class DiscoverPoCo { WHERE `last_contact` < UTC_TIMESTAMP - INTERVAL 1 MONTH AND `last_failure` < UTC_TIMESTAMP - INTERVAL 1 MONTH AND `network` IN ('%s', '%s', '%s', '%s', '') ORDER BY rand()", - dbesc(NETWORK_DFRN), dbesc(NETWORK_DIASPORA), - dbesc(NETWORK_OSTATUS), dbesc(NETWORK_FEED)); + DBA::escape(Protocol::DFRN), DBA::escape(Protocol::DIASPORA), + DBA::escape(Protocol::OSTATUS), DBA::escape(Protocol::FEED)); if (!$users) { return; @@ -159,21 +160,16 @@ class DiscoverPoCo { $urlparts = parse_url($user["url"]); if (!isset($urlparts["scheme"])) { - q("UPDATE `gcontact` SET `network` = '%s' WHERE `nurl` = '%s'", - dbesc(NETWORK_PHANTOM), dbesc(normalise_link($user["url"]))); + DBA::update('gcontact', ['network' => Protocol::PHANTOM], + ['nurl' => normalise_link($user["url"])]); continue; } - if (in_array($urlparts["host"], array("www.facebook.com", "facebook.com", "twitter.com", - "identi.ca", "alpha.app.net"))) { - $networks = array("www.facebook.com" => NETWORK_FACEBOOK, - "facebook.com" => NETWORK_FACEBOOK, - "twitter.com" => NETWORK_TWITTER, - "identi.ca" => NETWORK_PUMPIO, - "alpha.app.net" => NETWORK_APPNET); + if (in_array($urlparts["host"], ["twitter.com", "identi.ca"])) { + $networks = ["twitter.com" => Protocol::TWITTER, "identi.ca" => Protocol::PUMPIO]; - q("UPDATE `gcontact` SET `network` = '%s' WHERE `nurl` = '%s'", - dbesc($networks[$urlparts["host"]]), dbesc(normalise_link($user["url"]))); + DBA::update('gcontact', ['network' => $networks[$urlparts["host"]]], + ['nurl' => normalise_link($user["url"])]); continue; } @@ -187,7 +183,7 @@ class DiscoverPoCo { $server_url = $user["server_url"]; } - if ((($server_url == "") && ($user["network"] == NETWORK_FEED)) || $force_update || PortableContact::checkServer($server_url, $user["network"])) { + if ((($server_url == "") && ($user["network"] == Protocol::FEED)) || $force_update || PortableContact::checkServer($server_url, $user["network"])) { logger('Check profile '.$user["url"]); Worker::add(PRIORITY_LOW, "DiscoverPoCo", "check_profile", $user["url"]); @@ -195,8 +191,8 @@ class DiscoverPoCo { return; } } else { - q("UPDATE `gcontact` SET `last_failure` = '%s' WHERE `nurl` = '%s'", - dbesc(datetime_convert()), dbesc(normalise_link($user["url"]))); + DBA::update('gcontact', ['last_failure' => DateTimeFormat::utcNow()], + ['nurl' => normalise_link($user["url"])]); } // Quit the loop after 3 minutes @@ -217,14 +213,14 @@ class DiscoverPoCo { } } - $x = fetch_url(get_server()."/lsearch?p=1&n=500&search=".urlencode($search)); + $x = Network::fetchUrl(get_server()."/lsearch?p=1&n=500&search=".urlencode($search)); $j = json_decode($x); - if (count($j->results)) { + if (!empty($j->results)) { foreach ($j->results as $jj) { // Check if the contact already exists $exists = q("SELECT `id`, `last_contact`, `last_failure`, `updated` FROM `gcontact` WHERE `nurl` = '%s'", normalise_link($jj->url)); - if (DBM::is_result($exists)) { + if (DBA::isResult($exists)) { logger("Profile ".$jj->url." already exists (".$search.")", LOGGER_DEBUG); if (($exists[0]["last_contact"] < $exists[0]["last_failure"]) && @@ -246,7 +242,7 @@ class DiscoverPoCo { } $data = Probe::uri($jj->url); - if ($data["network"] == NETWORK_DFRN) { + if ($data["network"] == Protocol::DFRN) { logger("Profile ".$jj->url." is reachable (".$search.")", LOGGER_DEBUG); logger("Add profile ".$jj->url." to local directory (".$search.")", LOGGER_DEBUG); @@ -262,13 +258,13 @@ class DiscoverPoCo { } } } - Cache::set("dirsearch:".$search, time(), CACHE_DAY); + Cache::set("dirsearch:".$search, time(), Cache::DAY); } /** * @brief Search for GNU Social user with gstools.org * - * @param str $search User name + * @param string $search User name */ private static function gsSearchUser($search) { @@ -276,16 +272,14 @@ class DiscoverPoCo { // It is not removed since I hope that there will be a successor. return false; - $a = get_app(); - $url = "http://gstools.org/api/users_search/".urlencode($search); - $result = z_fetch_url($url); - if (!$result["success"]) { + $curlResult = Network::curl($url); + if (!$curlResult->isSuccess()) { return false; } - $contacts = json_decode($result["body"]); + $contacts = json_decode($curlResult->getBody()); if ($contacts->status == 'ERROR') { return false; @@ -295,7 +289,7 @@ class DiscoverPoCo { /// @TODO find all those and convert to all lower-case which is a keyword then foreach ($contacts->data AS $user) { $contact = Probe::uri($user->site_address."/".$user->name); - if ($contact["network"] != NETWORK_PHANTOM) { + if ($contact["network"] != Protocol::PHANTOM) { $contact["about"] = $user->description; GContact::update($contact); }