]> git.mxchange.org Git - friendica.git/commitdiff
Avoid probing for contacts if we don't want to update
authorMichael <heluecht@pirati.ca>
Thu, 9 Aug 2018 06:19:23 +0000 (06:19 +0000)
committerMichael <heluecht@pirati.ca>
Thu, 9 Aug 2018 06:19:23 +0000 (06:19 +0000)
src/Model/Contact.php

index 6f83dba0193c51cb4732a0a4b3e3c0f3427266b1..095bad37cda5703b9269577892a771e268ebebce 100644 (file)
@@ -849,7 +849,24 @@ class Contact extends BaseObject
                        return 0;
                }
 
-               $data = Probe::uri($url, "", $uid);
+               // When we don't want to update, we look if some of our users already know this contact
+               if ($no_update) {
+                       $fields = ['url', 'addr', 'alias', 'notify', 'poll', 'name', 'nick',
+                               'photo', 'keywords', 'location', 'about', 'network',
+                               'priority', 'batch', 'request', 'confirm', 'poco'];
+                       $data = DBA::selectFirst('contact', $fields, ['nurl' => normalise_link($url)]);
+
+                       if (DBA::isResult($data)) {
+                               // For security reasons we don't fetch key data from our users
+                               $data["pubkey"] = '';
+                       }
+               } else {
+                       $data = [];
+               }
+
+               if (empty($data)) {
+                       $data = Probe::uri($url, "", $uid);
+               }
 
                // Last try in gcontact for unsupported networks
                if (!in_array($data["network"], [NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_DIASPORA, NETWORK_PUMPIO, NETWORK_MAIL, NETWORK_FEED])) {