We can now return a list of known servers

This commit is contained in:
Michael 2017-03-04 11:04:00 +00:00
parent ec9dddb445
commit b42167f0ac
2 changed files with 30 additions and 6 deletions

View file

@ -2024,4 +2024,25 @@ function gs_discover() {
q("UPDATE `gserver` SET `last_poco_query` = '%s' WHERE `nurl` = '%s'", dbesc(datetime_convert()), dbesc($server["nurl"])); q("UPDATE `gserver` SET `last_poco_query` = '%s' WHERE `nurl` = '%s'", dbesc(datetime_convert()), dbesc($server["nurl"]));
} }
} }
/**
* @brief Returns a list of all known servers
* @return array List of server urls
*/
function poco_serverlist() {
$r = q("SELECT `id`, `url`, `site_name` AS `displayName`, `network`, `platform`, `version` FROM `gserver`
WHERE `network` IN ('%s', '%s', '%s') AND `last_contact` > `last_failure`
ORDER BY `last_contact`
LIMIT 1000",
dbesc(NETWORK_DFRN), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_OSTATUS));
if (!dbm::is_result($r)) {
return false;
}
$list = array();
foreach ($r AS $server) {
$server['id'] = (int)$server['id'];
$list[] = $server;
}
return $list;
}
?> ?>

View file

@ -27,6 +27,12 @@ function poco_init(App $a) {
$justme = false; $justme = false;
$global = false; $global = false;
if($a->argc > 1 && $a->argv[1] === '@server') {
$ret = poco_serverlist();
header('Content-type: application/json');
echo json_encode($ret);
killme();
}
if($a->argc > 1 && $a->argv[1] === '@global') { if($a->argc > 1 && $a->argv[1] === '@global') {
$global = true; $global = true;
$update_limit = date("Y-m-d H:i:s", time() - 30 * 86400); $update_limit = date("Y-m-d H:i:s", time() - 30 * 86400);
@ -314,11 +320,9 @@ function poco_init(App $a) {
$ret['entry'][] = $entry; $ret['entry'][] = $entry;
} }
} } else
else
$ret['entry'][] = array(); $ret['entry'][] = array();
} } else
else
http_status_exit(500); http_status_exit(500);
logger("End of poco", LOGGER_DEBUG); logger("End of poco", LOGGER_DEBUG);
@ -332,8 +336,7 @@ function poco_init(App $a) {
header('Content-type: application/json'); header('Content-type: application/json');
echo json_encode($ret); echo json_encode($ret);
killme(); killme();
} } else
else
http_status_exit(500); http_status_exit(500);