- if ($contact['subhub'] && in_array($contact['network'], array(NETWORK_DFRN, NETWORK_OSTATUS))) {
- /*
- * We should be getting everything via a hub. But just to be sure, let's check once a day.
- * (You can make this more or less frequent if desired by setting 'pushpoll_frequency' appropriately)
- * This also lets us update our subscription to the hub, and add or replace hubs in case it
- * changed. We will only update hubs once a day, regardless of 'pushpoll_frequency'.
- */
- $poll_interval = Config::get('system', 'pushpoll_frequency');
- $contact['priority'] = (($poll_interval !== false) ? intval($poll_interval) : 3);
+ if (($contact['priority'] >= 0) && !$force) {
+ $update = false;
+
+ $t = $contact['last-update'];
+
+ /*
+ * Based on $contact['priority'], should we poll this site now? Or later?
+ */
+ switch ($contact['priority']) {
+ case 5:
+ if (datetime_convert('UTC', 'UTC', 'now') > datetime_convert('UTC', 'UTC', $t . " + 1 month")) {
+ $update = true;
+ }
+ break;
+ case 4:
+ if (datetime_convert('UTC', 'UTC', 'now') > datetime_convert('UTC', 'UTC', $t . " + 1 week")) {
+ $update = true;
+ }
+ break;
+ case 3:
+ if (datetime_convert('UTC', 'UTC', 'now') > datetime_convert('UTC', 'UTC', $t . " + 1 day")) {
+ $update = true;
+ }
+ break;
+ case 2:
+ if (datetime_convert('UTC', 'UTC', 'now') > datetime_convert('UTC', 'UTC', $t . " + 12 hour")) {
+ $update = true;
+ }
+ break;
+ case 1:
+ if (datetime_convert('UTC', 'UTC', 'now') > datetime_convert('UTC', 'UTC', $t . " + 1 hour")) {
+ $update = true;
+ }
+ break;
+ case 0:
+ default:
+ if (datetime_convert('UTC', 'UTC', 'now') > datetime_convert('UTC', 'UTC', $t . " + ".$min_poll_interval." minute")) {
+ $update = true;
+ }
+ break;