<?php
/**
- * @file src/Worker/UpdateGContacts.php
+ * @copyright Copyright (C) 2020, Friendica
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
*/
+
namespace Friendica\Worker;
-use Friendica\Core\Config;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Core\Worker;
use Friendica\Database\DBA;
-use Friendica\Model\Contact;
+use Friendica\DI;
+use Friendica\Model\GContact;
use Friendica\Model\GServer;
use Friendica\Util\DateTimeFormat;
use Friendica\Util\Strings;
class UpdateGContacts
{
- // Updates gcontact entries
+ /**
+ * Updates global contacts
+ */
public static function execute()
{
- if (!Config::get('system', 'poco_completion')) {
+ if (!DI::config()->get('system', 'poco_completion')) {
return;
}
- Logger::info('Discover contacts');
+ Logger::info('Update global contacts');
$starttime = time();
$contacts = DBA::p("SELECT `url`, `created`, `updated`, `last_failure`, `last_contact`, `server_url`, `network` FROM `gcontact`
WHERE `last_contact` < UTC_TIMESTAMP - INTERVAL 1 MONTH AND
`last_failure` < UTC_TIMESTAMP - INTERVAL 1 MONTH AND
- `network` IN (?, ?, ?, ?, '') ORDER BY rand()",
- Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS, Protocol::FEED);
+ `network` IN (?, ?, ?, ?, ?, '') ORDER BY rand()",
+ Protocol::ACTIVITYPUB, Protocol::DFRN, Protocol::DIASPORA, Protocol::OSTATUS, Protocol::FEED);
$checked = 0;
continue;
}
- $server_url = Contact::getBasepath($contact['url']);
+ $server_url = GContact::getBasepath($contact['url'], true);
$force_update = false;
if (!empty($contact['server_url'])) {
return;
}
}
+ DBA::close($contacts);
}
}