]> git.mxchange.org Git - friendica.git/blobdiff - src/Worker/DiscoverPoCo.php
wrapping up 2019.12
[friendica.git] / src / Worker / DiscoverPoCo.php
index 72df3420e804fe9555aa8286af89ef0cc483eff5..d495b4c2a6a8db94c6a7e070eb09f94afad25931 100644 (file)
@@ -11,10 +11,13 @@ use Friendica\Core\Protocol;
 use Friendica\Core\Worker;
 use Friendica\Database\DBA;
 use Friendica\Model\GContact;
+use Friendica\Model\Contact;
+use Friendica\Model\GServer;
 use Friendica\Network\Probe;
 use Friendica\Protocol\PortableContact;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\Network;
+use Friendica\Util\Strings;
 
 class DiscoverPoCo
 {
@@ -61,7 +64,7 @@ class DiscoverPoCo
 
                if ($mode == 8) {
                        if ($param1 != "") {
-                               PortableContact::lastUpdated($param1, true);
+                               GContact::updateFromProbe($param1, true);
                        }
                } elseif ($mode == 7) {
                        if (!empty($param4)) {
@@ -80,11 +83,11 @@ class DiscoverPoCo
                                return;
                        }
                        $server_url = filter_var($server_url, FILTER_SANITIZE_URL);
-                       if (substr(normalise_link($server_url), 0, 7) != "http://") {
+                       if (substr(Strings::normaliseLink($server_url), 0, 7) != "http://") {
                                return;
                        }
                        $result = "Checking server ".$server_url." - ";
-                       $ret = PortableContact::checkServer($server_url);
+                       $ret = GServer::check($server_url);
                        if ($ret) {
                                $result .= "success";
                        } else {
@@ -98,7 +101,7 @@ class DiscoverPoCo
                } elseif (($mode == 1) && ($search != "") && Config::get('system', 'poco_local_search')) {
                        self::discoverDirectory($search);
                        self::gsSearchUser($search);
-               } elseif (($mode == 0) && ($search == "") && (Config::get('system', 'poco_discovery') > 0)) {
+               } elseif (($mode == 0) && ($search == "") && (Config::get('system', 'poco_discovery') != PortableContact::DISABLED)) {
                        // Query Friendica and Hubzilla servers for their users
                        PortableContact::discover();
 
@@ -162,7 +165,7 @@ class DiscoverPoCo
                        $urlparts = parse_url($user["url"]);
                        if (!isset($urlparts["scheme"])) {
                                DBA::update('gcontact', ['network' => Protocol::PHANTOM],
-                                       ['nurl' => normalise_link($user["url"])]);
+                                       ['nurl' => Strings::normaliseLink($user["url"])]);
                                continue;
                         }
 
@@ -170,21 +173,21 @@ class DiscoverPoCo
                                $networks = ["twitter.com" => Protocol::TWITTER, "identi.ca" => Protocol::PUMPIO];
 
                                DBA::update('gcontact', ['network' => $networks[$urlparts["host"]]],
-                                       ['nurl' => normalise_link($user["url"])]);
+                                       ['nurl' => Strings::normaliseLink($user["url"])]);
                                continue;
                        }
 
-                       $server_url = PortableContact::detectServer($user["url"]);
+                       $server_url = Contact::getBasepath($user["url"]);
                        $force_update = false;
 
                        if ($user["server_url"] != "") {
 
-                               $force_update = (normalise_link($user["server_url"]) != normalise_link($server_url));
+                               $force_update = (Strings::normaliseLink($user["server_url"]) != Strings::normaliseLink($server_url));
 
                                $server_url = $user["server_url"];
                        }
 
-                       if ((($server_url == "") && ($user["network"] == Protocol::FEED)) || $force_update || PortableContact::checkServer($server_url, $user["network"])) {
+                       if ((($server_url == "") && ($user["network"] == Protocol::FEED)) || $force_update || GServer::check($server_url, $user["network"])) {
                                Logger::log('Check profile '.$user["url"]);
                                Worker::add(PRIORITY_LOW, "DiscoverPoCo", "check_profile", $user["url"]);
 
@@ -193,7 +196,7 @@ class DiscoverPoCo
                                }
                        } else {
                                DBA::update('gcontact', ['last_failure' => DateTimeFormat::utcNow()],
-                                       ['nurl' => normalise_link($user["url"])]);
+                                       ['nurl' => Strings::normaliseLink($user["url"])]);
                        }
 
                        // Quit the loop after 3 minutes
@@ -220,7 +223,7 @@ class DiscoverPoCo
                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));
+                               $exists = q("SELECT `id`, `last_contact`, `last_failure`, `updated` FROM `gcontact` WHERE `nurl` = '%s'", Strings::normaliseLink($jj->url));
                                if (DBA::isResult($exists)) {
                                        Logger::log("Profile ".$jj->url." already exists (".$search.")", Logger::DEBUG);
 
@@ -229,13 +232,13 @@ class DiscoverPoCo
                                                continue;
                                        }
                                        // Update the contact
-                                       PortableContact::lastUpdated($jj->url);
+                                       GContact::updateFromProbe($jj->url);
                                        continue;
                                }
 
-                               $server_url = PortableContact::detectServer($jj->url);
+                               $server_url = Contact::getBasepath($jj->url);
                                if ($server_url != '') {
-                                       if (!PortableContact::checkServer($server_url)) {
+                                       if (!GServer::check($server_url)) {
                                                Logger::log("Friendica server ".$server_url." doesn't answer.", Logger::DEBUG);
                                                continue;
                                        }
@@ -266,6 +269,9 @@ class DiscoverPoCo
         * @brief Search for GNU Social user with gstools.org
         *
         * @param string $search User name
+        * @return bool
+        * @throws \Friendica\Network\HTTPException\InternalServerErrorException
+        * @throws \ImagickException
         */
        private static function gsSearchUser($search) {