diff options
author | friendica <info@friendica.com> | 2013-01-29 19:28:19 -0800 |
---|---|---|
committer | friendica <info@friendica.com> | 2013-01-29 19:28:19 -0800 |
commit | e270bd3874bb4526138cc06cd26e2a1153778894 (patch) | |
tree | 3f58cbb7fd464421423fb250423d4781c80f036b | |
parent | fb9ccf5d1b39fc060c5752d28f89daf2378610d3 (diff) | |
download | volse-hubzilla-e270bd3874bb4526138cc06cd26e2a1153778894.tar.gz volse-hubzilla-e270bd3874bb4526138cc06cd26e2a1153778894.tar.bz2 volse-hubzilla-e270bd3874bb4526138cc06cd26e2a1153778894.zip |
mark for death implemented
-rw-r--r-- | include/onepoll.php | 18 | ||||
-rw-r--r-- | include/poller.php | 45 | ||||
-rw-r--r-- | mod/poco.php | 2 |
3 files changed, 52 insertions, 13 deletions
diff --git a/include/onepoll.php b/include/onepoll.php index f025aaf86..8b0c5211b 100644 --- a/include/onepoll.php +++ b/include/onepoll.php @@ -33,7 +33,6 @@ function onepoll_run($argv, $argc){ $d = datetime_convert(); -dbg(1); $contacts = q("SELECT abook.*, xchan.*, account.* FROM abook LEFT JOIN account on abook_account = account_id left join xchan on xchan_hash = abook_xchan where abook_id = %d @@ -45,7 +44,6 @@ dbg(1); intval(ACCOUNT_OK), intval(ACCOUNT_UNVERIFIED) ); -dbg(0); if(! $contacts) { logger('onepoll: abook_id not found: ' . $contact_id); @@ -79,21 +77,21 @@ dbg(0); $x = zot_refresh($contact,$importer); $responded = false; - + $updated = datetime_convert(); if(! $x) { - // mark for death - + // mark for death by not updating abook_connected, this is caught in include/poller.php + q("update abook set abook_updated = '%s' where abook_id = %d limit 1", + dbesc($updated), + intval($contact['abook_id']) + ); } else { q("update abook set abook_updated = '%s', abook_connected = '%s' where abook_id = %d limit 1", - dbesc(datetime_convert()), - dbesc(datetime_convert()), + dbesc($updated), + dbesc($updated), intval($contact['abook_id']) ); $responded = true; - - // if marked for death, reset - } if(! $responded) diff --git a/include/poller.php b/include/poller.php index 00e336453..ef4b93fe7 100644 --- a/include/poller.php +++ b/include/poller.php @@ -124,9 +124,50 @@ function poller_run($argv, $argc){ $update = false; $t = $contact['abook_updated']; + $c = $contact['abook_connected']; - if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day")) - $update = true; + + if($c == $t) { + if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day")) + $update = true; + } + else { + // if we've never connected with them, start the mark for death countdown from now + + if($c === '0000-00-00 00:00:00') { + $r = q("update abook set abook_connected = '%s' where abook_id = %d limit 1", + dbesc(datetime_convert()), + intval($abook['abook_id']) + ); + $c = datetime_convert(); + $update = true; + } + + // He's dead, Jim + + if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $c . " + 30 day")) { + $r = q("update abook set abook_flags = (abook_flags & %d) where abook_id = %d limit 1", + intval(ABOOK_FLAG_ARCHIVED), + intval($contact['abook_id']) + ); + $update = false; + continue; + } + + // might be dead, so maybe don't poll quite so often + + // recently deceased, so keep up the regular schedule for 3 days + + if((datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $c . " + 3 day")) + && (datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 1 day"))) + $update = true; + + // After that back off and put them on a morphine drip + + if(datetime_convert('UTC','UTC', 'now') > datetime_convert('UTC','UTC', $t . " + 2 day")) { + $update = true; + } + } if((! $update) && (! $force)) continue; diff --git a/mod/poco.php b/mod/poco.php index f437a0336..3ebc5ece4 100644 --- a/mod/poco.php +++ b/mod/poco.php @@ -18,7 +18,7 @@ function poco_init(&$a) { $c = q("select * from pconfig where cat = 'system' and k = 'suggestme' and v = 1"); if(! $c) { logger('mod_poco: system mode. No candidates.', LOGGER_DEBUG); - http_status_exit(401); + http_status_exit(404); } $system_mode = true; } |