]> git.mxchange.org Git - friendica.git/commitdiff
Post update added
authorMichael <heluecht@pirati.ca>
Sun, 19 Jul 2020 10:03:33 +0000 (10:03 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 19 Jul 2020 10:03:33 +0000 (10:03 +0000)
src/Model/Item.php
static/dbstructure.config.php
update.php

index c75286b25ca5d13b7561373f8f48d47587b74788..537611dd1b07ce661dfc2a7b21faee51eaf6afce 100644 (file)
@@ -2391,7 +2391,7 @@ class Item
                }
 
                /// @todo On private posts we could obfuscate the date
-               $update = ($arr['private'] != self::PRIVATE);
+               $update = ($arr['private'] != self::PRIVATE) || in_array($arr['network'], Protocol::FEDERATED);
 
                // Is it a forum? Then we don't care about the rules from above
                if (!$update && in_array($arr["network"], [Protocol::ACTIVITYPUB, Protocol::DFRN]) && ($arr["parent-uri"] === $arr["uri"])) {
@@ -2409,15 +2409,15 @@ class Item
                        } else { 
                                $condition = ['id' => $arr['contact-id'], 'self' => false];
                        }
-                       DBA::update('contact', ['success_update' => $arr['received'], 'last-item' => $arr['received']], $condition);
+                       DBA::update('contact', ['failed' => false, 'success_update' => $arr['received'], 'last-item' => $arr['received']], $condition);
                }
                // Now do the same for the system wide contacts with uid=0
                if ($arr['private'] != self::PRIVATE) {
-                       DBA::update('contact', ['success_update' => $arr['received'], 'last-item' => $arr['received']],
+                       DBA::update('contact', ['failed' => false, 'success_update' => $arr['received'], 'last-item' => $arr['received']],
                                ['id' => $arr['owner-id']]);
 
                        if ($arr['owner-id'] != $arr['author-id']) {
-                               DBA::update('contact', ['success_update' => $arr['received'], 'last-item' => $arr['received']],
+                               DBA::update('contact', ['failed' => false, 'success_update' => $arr['received'], 'last-item' => $arr['received']],
                                        ['id' => $arr['author-id']]);
                        }
                }
index 7433531fe7368b47775b18e7eeed2d2e53816720..14a52aa9ad5aa5fb0b0648b2cf06bcb36f729da1 100755 (executable)
@@ -54,7 +54,7 @@
 use Friendica\Database\DBA;
 
 if (!defined('DB_UPDATE_VERSION')) {
-       define('DB_UPDATE_VERSION', 1356);
+       define('DB_UPDATE_VERSION', 1357);
 }
 
 return [
index 1a9a60ac65b1e6c1e3105c750062451b4b64a30a..a4d71bc4fde2b30f11e3e0a0fe71f7a53439fa44 100644 (file)
@@ -535,3 +535,43 @@ function update_1354()
        }
        return Update::SUCCESS;
 }
+
+function update_1357()
+{
+       if (!DBA::e("UPDATE `contact` SET `failed` = true WHERE `success_update` < `failure_update` AND `failed` IS NULL")) {
+               return Update::FAILED;
+       }
+
+       if (!DBA::e("UPDATE `contact` SET `failed` = false WHERE `success_update` > `failure_update` AND `failed` IS NULL")) {
+               return Update::FAILED;
+       }
+
+       if (!DBA::e("UPDATE `contact` SET `failed` = false WHERE `updated` > `failure_update` AND `failed` IS NULL")) {
+               return Update::FAILED;
+       }
+
+       if (!DBA::e("UPDATE `contact` SET `failed` = false WHERE `last-item` > `failure_update` AND `failed` IS NULL")) {
+               return Update::FAILED;
+       }
+
+       if (!DBA::e("UPDATE `gserver` SET `failed` = true WHERE `last_contact` < `last_failure` AND `failed` IS NULL")) {
+               return Update::FAILED;
+       }
+
+       if (!DBA::e("UPDATE `gserver` SET `failed` = false WHERE `last_contact` > `last_failure` AND `failed` IS NULL")) {
+               return Update::FAILED;
+       }
+
+       if (!DBA::e("UPDATE `gcontact` SET `failed` = true WHERE `last_contact` < `last_failure` AND `failed` IS NULL")) {
+               return Update::FAILED;
+       }
+
+       if (!DBA::e("UPDATE `gcontact` SET `failed` = false WHERE `last_contact` > `last_failure` AND `failed` IS NULL")) {
+               return Update::FAILED;
+       }
+
+       if (!DBA::e("UPDATE `gcontact` SET `failed` = false WHERE `updated` > `last_failure` AND `failed` IS NULL")) {
+               return Update::FAILED;
+       }
+       return Update::SUCCESS;
+}