function discover_users() {
logger("Discover users", LOGGER_DEBUG);
- // To-Do: Maybe we should check old contact as well.
+
$users = q("SELECT `url`, `created`, `updated`, `last_failure`, `last_contact`, `server_url` FROM `gcontact`
- WHERE `last_contact` = '0000-00-00 00:00:00' AND `last_failure` = '0000-00-00 00:00:00' AND
+ WHERE `last_contact` < UTC_TIMESTAMP - INTERVAL 1 MONTH AND
+ `last_failure` < UTC_TIMESTAMP - INTERVAL 1 MONTH AND
`network` IN ('%s', '%s', '%s') ORDER BY rand()",
dbesc(NETWORK_DFRN), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_OSTATUS));
if (poco_check_server($server_url, $gcontacts[0]["network"])) {
logger('Check user '.$user["url"]);
- poco_last_updated($user["url"]);
+ poco_last_updated($user["url"], true);
if (++$checked > 100)
return;
return $server_url;
}
-function poco_last_updated($profile) {
+function poco_last_updated($profile, $force = false) {
$gcontacts = q("SELECT * FROM `gcontact` WHERE `nurl` = '%s'",
dbesc(normalise_link($profile)));
if ($server) {
$noscraperet = z_fetch_url($server[0]["noscrape"]."/".$gcontacts[0]["nick"]);
- if ($noscraperet["success"]) {
+ if ($noscraperet["success"] AND ($noscraperet["body"] = "")) {
$noscrape = json_decode($noscraperet["body"], true);
if (($noscrape["name"] != "") AND ($noscrape["name"] != $gcontacts[0]["name"]))
}
// If we only can poll the feed, then we only do this once a while
- if (!poco_do_update($gcontacts[0]["created"], $gcontacts[0]["updated"], $gcontacts[0]["last_failure"], $gcontacts[0]["last_contact"]))
+ if (!$force AND !poco_do_update($gcontacts[0]["created"], $gcontacts[0]["updated"], $gcontacts[0]["last_failure"], $gcontacts[0]["last_contact"]))
return $gcontacts[0]["updated"];
$data = probe_url($profile);