]> git.mxchange.org Git - friendica.git/commitdiff
Some cleanup for archiving/unarchiving contacts
authorMichael <heluecht@pirati.ca>
Tue, 5 Dec 2017 07:08:20 +0000 (07:08 +0000)
committerMichael <heluecht@pirati.ca>
Tue, 5 Dec 2017 07:08:20 +0000 (07:08 +0000)
src/Protocol/Diaspora.php
src/Protocol/OStatus.php
src/Worker/OnePoll.php

index 26412e27044f9ce676794f2be5913e400d6a26d2..cd4e5b6f0e0135980d21efa40b0c62f867ad8bcd 100644 (file)
@@ -1339,10 +1339,6 @@ class Diaspora
                if ($r) {
                        $cid = $r[0]["id"];
                        $network = $r[0]["network"];
-
-                       // We are receiving content from a user that possibly is about to be terminated
-                       // This means the user is vital, so we remove a possible termination date.
-                       Contact::unmarkForArchival($r[0]);
                } else {
                        $cid = $contact["id"];
                        $network = NETWORK_DIASPORA;
index 47538faa83953ec13089f06d3d479484f558e850..9a2eaeb5b712767ab9bbf0e50a829d06249858ae 100644 (file)
@@ -151,11 +151,8 @@ class OStatus
 
                // Only update the contacts if it is an OStatus contact
                if ($r && ($r['id'] > 0) && !$onlyfetch && ($contact["network"] == NETWORK_OSTATUS)) {
-                       // This contact is vital, so we awake it from the dead
-                       Contact::unmarkForArchival($contact);
 
                        // Update contact data
-
                        $current = $contact;
                        unset($current['name-date']);
 
index 0cf261a6e4b0b5794ce3ae8bcb25e7602c3775fa..9c8cdb81d34104f675c2b2005f7d15312266b9d1 100644 (file)
@@ -77,10 +77,10 @@ Class OnePoll
                                        }
 
                                        $fields = array('last-item' => $last_updated, 'last-update' => $updated, 'success_update' => $updated);
-                                       dba::update('contact', $fields, array('id' => $contact['id']));
+                                       self::updateContact($contact, $fields);
                                        Contact::unmarkForArchival($contact);
                                } else {
-                                       dba::update('contact', array('last-update' => $updated, 'failure_update' => $updated), array('id' => $contact['id']));
+                                       self::updateContact($contact, array('last-update' => $updated, 'failure_update' => $updated));
                                        Contact::markForArchival($contact);
                                        logger('Contact '.$contact['id'].' is marked for archival', LOGGER_DEBUG);
                                }
@@ -206,7 +206,7 @@ Class OnePoll
 
                                // set the last-update so we don't keep polling
                                $fields = array('last-update' => datetime_convert(), 'failure_update' => datetime_convert());
-                               dba::update('contact', $fields, array('id' => $contact['id']));
+                               self::updateContact($contact, $fields);
                                return;
                        }
 
@@ -216,7 +216,7 @@ Class OnePoll
                                Contact::markForArchival($contact);
 
                                $fields = array('last-update' => datetime_convert(), 'failure_update' => datetime_convert());
-                               dba::update('contact', $fields, array('id' => $contact['id']));
+                               self::updateContact($contact, $fields);
                                return;
                        }
 
@@ -229,7 +229,7 @@ Class OnePoll
                                // we may not be friends anymore. Will keep trying for one month.
                                // set the last-update so we don't keep polling
                                $fields = array('last-update' => datetime_convert(), 'failure_update' => datetime_convert());
-                               dba::update('contact', $fields, array('id' => $contact['id']));
+                               self::updateContact($contact, $fields);
 
                                Contact::markForArchival($contact);
                        } elseif ($contact['term-date'] > NULL_DATE) {
@@ -577,7 +577,7 @@ Class OnePoll
                                logger('post_handshake: response from ' . $url . ' did not contain XML.');
 
                                $fields = array('last-update' => datetime_convert(), 'failure_update' => datetime_convert());
-                               dba::update('contact', $fields, array('id' => $contact['id']));
+                               self::updateContact($contact, $fields);
                                Contact::markForArchival($contact);
                                return;
                        }
@@ -622,13 +622,13 @@ Class OnePoll
 
                        $updated = datetime_convert();
 
-                       dba::update('contact', array('last-update' => $updated, 'success_update' => $updated), array('id' => $contact['id']));
+                       self::updateContact($contact, array('last-update' => $updated, 'success_update' => $updated));
                        dba::update('gcontact', array('last_contact' => $updated), array('nurl' => $contact['nurl']));
                        Contact::unmarkForArchival($contact);
                } elseif (in_array($contact["network"], array(NETWORK_DFRN, NETWORK_DIASPORA, NETWORK_OSTATUS, NETWORK_FEED))) {
                        $updated = datetime_convert();
 
-                       dba::update('contact', array('last-update' => $updated, 'failure_update' => $updated), array('id' => $contact['id']));
+                       self::updateContact($contact, array('last-update' => $updated, 'failure_update' => $updated));
                        dba::update('gcontact', array('last_failure' => $updated), array('nurl' => $contact['nurl']));
                        Contact::markForArchival($contact);
                } else {
@@ -645,4 +645,15 @@ Class OnePoll
 
                return $subject;
        }
+
+       /**
+        * @brief Updates a personal contact entry and the public contact entry
+        *
+        * @param array $contact The personal contact entry
+        * @param array $fields The fields that are updated
+        */
+       private static function updateContact($contact, $fields) {
+                       dba::update('contact', $fields, array('id' => $contact['id']));
+                       dba::update('contact', $fields, array('uid' => 0, 'nurl' => $contact['nurl']));
+       }
 }