*/
namespace Friendica\Worker;
-use Friendica\Core\Cache;
use Friendica\Core\Config;
use Friendica\Core\Logger;
use Friendica\Core\Protocol;
use Friendica\Model\GContact;
use Friendica\Model\Contact;
use Friendica\Model\GServer;
-use Friendica\Network\Probe;
use Friendica\Protocol\PortableContact;
-use Friendica\Util\DateTimeFormat;
-use Friendica\Util\Network;
use Friendica\Util\Strings;
class DiscoverPoCo
{
/*
This function can be called in these ways:
- - checkcontact: Updates gcontact entries
- server <poco url>: Searches for the poco server list. "poco url" is base64 encoded.
- - update_server: Frequently check the first 250 servers for vitality.
- - PortableContact::load: Load POCO data from a given POCO address
*/
$search = "";
$result .= "failed";
}
Logger::log($result, Logger::DEBUG);
- } elseif ($command == "update_server") {
- self::updateServer();
- } elseif ($command == "load") {
- if (!empty($param4)) {
- $url = $param4;
- } else {
- $url = '';
- }
- PortableContact::load(intval($param1), intval($param2), intval($param3), $url);
} elseif ($command !== "") {
Logger::log("Unknown or missing parameter ".$command."\n");
return;
return;
}
-
- /**
- * @brief Updates the first 250 servers
- *
- */
- private static function updateServer() {
- $r = q("SELECT `url`, `created`, `last_failure`, `last_contact` FROM `gserver` ORDER BY rand()");
-
- if (!DBA::isResult($r)) {
- return;
- }
-
- $updated = 0;
-
- foreach ($r AS $server) {
- if (!PortableContact::updateNeeded($server["created"], "", $server["last_failure"], $server["last_contact"])) {
- continue;
- }
- Logger::log('Update server status for server '.$server["url"], Logger::DEBUG);
-
- Worker::add(PRIORITY_LOW, "DiscoverPoCo", "server", $server["url"]);
-
- if (++$updated > 250) {
- return;
- }
- }
- }
}