]> git.mxchange.org Git - friendica.git/blobdiff - src/Model/Contact.php
Merge pull request #13172 from annando/parent-view
[friendica.git] / src / Model / Contact.php
index 648193b09cc2749e3c6b762ab63c2732f334ffad..78150f1ff4085606ced6119babf7784c1eadedfd 100644 (file)
@@ -361,7 +361,7 @@ class Contact
                $background_update = DI::config()->get('system', 'update_active_contacts') ? $contact['local-data'] : true;
 
                // Update the contact in the background if needed
-               if ($background_update && !self::isLocal($url) && Probe::isProbable($contact['network']) && ($contact['next-update'] < DateTimeFormat::utcNow())) {
+               if ($background_update && !self::isLocal($url) && Protocol::supportsProbe($contact['network']) && ($contact['next-update'] < DateTimeFormat::utcNow())) {
                        try {
                                UpdateContact::add(['priority' => Worker::PRIORITY_LOW, 'dont_fork' => true], $contact['id']);
                        } catch (\InvalidArgumentException $e) {
@@ -1152,10 +1152,11 @@ class Contact
                $status_link = '';
                $photos_link = '';
 
-               $sparkle = false;
                if (($contact['network'] === Protocol::DFRN) && !$contact['self'] && empty($contact['pending'])) {
-                       $sparkle      = true;
                        $profile_link = 'contact/redir/' . $contact['id'];
+                       $status_link  = $profile_link . '?' . http_build_query(['url' => $contact['url'] . '/status']);
+                       $photos_link  = $profile_link . '?' . http_build_query(['url' => $contact['url'] . '/photos']);
+                       $profile_link = $profile_link . '?' . http_build_query(['url' => $contact['url'] . '/profile']);
                } else {
                        $profile_link = $contact['url'];
                }
@@ -1164,12 +1165,6 @@ class Contact
                        $profile_link = '';
                }
 
-               if ($sparkle) {
-                       $status_link  = $profile_link . '/status';
-                       $photos_link  = $profile_link . '/photos';
-                       $profile_link = $profile_link . '/profile';
-               }
-
                if (self::canReceivePrivateMessages($contact) && empty($contact['pending'])) {
                        $pm_url = 'message/new/' . $contact['id'];
                }
@@ -1279,7 +1274,7 @@ class Contact
 
                        $background_update = DI::config()->get('system', 'update_active_contacts') ? $contact['local-data'] : true;
 
-                       if ($background_update && !self::isLocal($url) && Probe::isProbable($contact['network']) && ($contact['next-update'] < DateTimeFormat::utcNow())) {
+                       if ($background_update && !self::isLocal($url) && Protocol::supportsProbe($contact['network']) && ($contact['next-update'] < DateTimeFormat::utcNow())) {
                                try {
                                        UpdateContact::add(['priority' => Worker::PRIORITY_LOW, 'dont_fork' => true], $contact['id']);
                                } catch (\InvalidArgumentException $e) {
@@ -2704,16 +2699,20 @@ class Contact
 
                $updated = DateTimeFormat::utcNow();
 
-               if (!Probe::isProbable($ret['network']) && !Probe::isProbable($contact['network'])) {
+               if (!Protocol::supportsProbe($ret['network']) && !Protocol::supportsProbe($contact['network'])) {
                        // Periodical checks are only done on federated contacts
                        $failed_next_update  = null;
                        $success_next_update = null;
                } elseif ($has_local_data) {
                        $failed_next_update  = GServer::getNextUpdateDate(false, $created, $last_update, !in_array($contact['network'], Protocol::FEDERATED));
                        $success_next_update = GServer::getNextUpdateDate(true, $created, $last_update, !in_array($contact['network'], Protocol::FEDERATED));
-               } else {
+               } elseif (in_array($ret['network'], array_merge(Protocol::NATIVE_SUPPORT, [Protocol::ZOT, Protocol::PHANTOM]))) {
                        $failed_next_update  = DateTimeFormat::utc('now +6 month');
                        $success_next_update = DateTimeFormat::utc('now +1 month');
+               } else {
+                       // We don't check connector networks very often to not run into API rate limits
+                       $failed_next_update  = DateTimeFormat::utc('now +12 month');
+                       $success_next_update = DateTimeFormat::utc('now +12 month');
                }
 
                if (Strings::normaliseLink($contact['url']) != Strings::normaliseLink($ret['url'])) {
@@ -3098,7 +3097,7 @@ class Contact
                $contact_id = $contact['id'];
                $result['cid'] = $contact_id;
 
-               Group::addMember(User::getDefaultGroup($uid), $contact_id);
+               Circle::addMember(User::getDefaultCircle($uid), $contact_id);
 
                // Update the avatar
                self::updateAvatar($contact_id, $ret['photo']);
@@ -3239,7 +3238,7 @@ class Contact
                                        DI::intro()->save($intro);
                                }
 
-                               Group::addMember(User::getDefaultGroup($importer['uid']), $contact_record['id']);
+                               Circle::addMember(User::getDefaultCircle($importer['uid']), $contact_record['id']);
 
                                if (($user['notify-flags'] & Notification\Type::INTRO) && $user['page-flags'] == User::PAGE_FLAGS_NORMAL) {
                                        DI::notify()->createFromArray([
@@ -3440,7 +3439,7 @@ class Contact
         */
        public static function magicLinkByContact(array $contact, string $url = ''): string
        {
-               $destination = $url ?: $contact['url']; // Equivalent to ($url != '') ? $url : $contact['url'];
+               $destination = $url ?: $contact['url'];
 
                if (!DI::userSession()->isAuthenticated()) {
                        return $destination;
@@ -3596,7 +3595,7 @@ class Contact
                        if (empty($contact['id']) && Network::isValidHttpUrl($url)) {
                                Worker::add(Worker::PRIORITY_LOW, 'AddContact', 0, $url);
                                ++$added;
-                       } elseif (!empty($contact['network']) && Probe::isProbable($contact['network']) && ($contact['next-update'] < DateTimeFormat::utcNow())) {
+                       } elseif (!empty($contact['network']) && Protocol::supportsProbe($contact['network']) && ($contact['next-update'] < DateTimeFormat::utcNow())) {
                                try {
                                        UpdateContact::add(['priority' => Worker::PRIORITY_LOW, 'dont_fork' => true], $contact['id']);
                                        ++$updated;