]> git.mxchange.org Git - friendica.git/blobdiff - src/Worker/UpdateBlockedServers.php
Update src/Module/Magic.php
[friendica.git] / src / Worker / UpdateBlockedServers.php
index 9a3a7df3fa722d53f72c5fa239847ed3e003bf04..980897939c5547afa83b7409f0edb63840bc4fa0 100644 (file)
@@ -23,6 +23,7 @@ namespace Friendica\Worker;
 
 use Friendica\Core\Logger;
 use Friendica\Database\DBA;
+use Friendica\DI;
 use Friendica\Model\GServer;
 use Friendica\Util\Network;
 
@@ -33,11 +34,14 @@ class UpdateBlockedServers
         */
        public static function execute()
        {
-               Logger::debug('Update blocked servers - start');
+               Logger::info('Update blocked servers - start');
                $gservers = DBA::select('gserver', ['id', 'url', 'blocked']);
+               $changed  = 0;
+               $unchanged = 0;
                while ($gserver = DBA::fetch($gservers)) {
                        $blocked = Network::isUrlBlocked($gserver['url']);
                        if (!is_null($gserver['blocked']) && ($blocked == $gserver['blocked'])) {
+                               $unchanged++;
                                continue;
                        }
 
@@ -46,8 +50,15 @@ class UpdateBlockedServers
                        } else {
                                GServer::setUnblockedById($gserver['id']);
                        }
+                       $changed++;
                }
                DBA::close($gservers);
-               Logger::debug('Update blocked servers - done');
+               Logger::info('Update blocked servers - done', ['changed' => $changed, 'unchanged' => $unchanged]);
+
+               if (DI::config()->get('system', 'delete-blocked-servers')) {
+                       Logger::info('Delete blocked servers - start');
+                       $ret = DBA::delete('gserver', ["`blocked` AND NOT EXISTS(SELECT `gsid` FROM `inbox-status` WHERE `gsid` = `gserver`.`id`) AND NOT EXISTS(SELECT `gsid` FROM `contact` WHERE gsid= `gserver`.`id`) AND NOT EXISTS(SELECT `gsid` FROM `apcontact` WHERE `gsid` = `gserver`.`id`) AND NOT EXISTS(SELECT `gsid` FROM `delivery-queue` WHERE `gsid` = `gserver`.`id`) AND NOT EXISTS(SELECT `gsid` FROM `diaspora-contact` WHERE `gsid` = `gserver`.`id`) AND NOT EXISTS(SELECT `gserver-id` FROM `gserver-tag` WHERE `gserver-id` = `gserver`.`id`)"]);
+                       Logger::info('Delete blocked servers - done', ['ret' => $ret, 'rows' => DBA::affectedRows()]);
+               }
        }
 }