$a->set_baseurl(get_config('system','url'));
+ logger('notifier: invoked: ' . print_r($argv,true));
+
$cmd = $argv[1];
switch($cmd) {
logger('notifier: url_recipients' . print_r($url_recipients,true));
- $conversants = array_unique($conversants,SORT_NUMERIC);
+ $conversants = array_unique($conversants);
- $recipients = array_unique(array_merge($recipients,$allow_people,$allow_groups),SORT_NUMERIC);
- $deny = array_unique(array_merge($deny_people,$deny_groups),SORT_NUMERIC);
+ $recipients = array_unique(array_merge($recipients,$allow_people,$allow_groups));
+ $deny = array_unique(array_merge($deny_people,$deny_groups));
$recipients = array_diff($recipients,$deny);
$conversant_str = dbesc(implode(', ',$conversants));
if($followup) {
foreach($items as $item) { // there is only one item
if($item['id'] == $item_id) {
+ logger('notifier: followup: item: ' . print_r($item,true), LOGGER_DATA);
$slap = atom_entry($item,'html',$owner,$owner,false);
$atom .= atom_entry($item,'text',$owner,$owner,false);
}
case 'dfrn':
logger('notifier: dfrndelivery: ' . $contact['name']);
$deliver_status = dfrn_deliver($owner,$contact,$atom);
+
+ logger('notifier: dfrn_delivery returns ' . $deliver_status);
+
+ if($deliver_status == (-1)) {
+ logger('notifier: delivery failed: queuing message');
+ // queue message for redelivery
+ q("INSERT INTO `queue` ( `cid`, `created`, `last`, `content`)
+ VALUES ( %d, '%s', '%s', '%s') ",
+ intval($contact['id']),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc($atom)
+ );
+ }
break;
default:
- if($followup) {
- slapper($owner,$contact['notify'],$slap);
+ if($followup && $contact['notify']) {
+ logger('notifier: slapdelivery: ' . $contact['name']);
+ $deliver_status = slapper($owner,$contact['notify'],$slap);
+
+ if($deliver_status == (-1)) {
+ // queue message for redelivery
+ q("INSERT INTO `queue` ( `cid`, `created`, `last`, `content`)
+ VALUES ( %d, '%s', '%s', '%s') ",
+ intval($contact['id']),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc($slap)
+ );
+
+ }
+
+
}
else {
if(count($slaps) && $notify_hub) {
logger('notifier: slapdelivery: ' . $contact['name']);
foreach($slaps as $slappy) {
- slapper($owner,$contact['notify'],$slappy);
+ if($contact['notify']) {
+ $deliver_status = slapper($owner,$contact['notify'],$slappy);
+ if($deliver_status == (-1)) {
+ // queue message for redelivery
+ q("INSERT INTO `queue` ( `cid`, `created`, `last`, `content`)
+ VALUES ( %d, '%s', '%s', '%s') ",
+ intval($contact['id']),
+ dbesc(datetime_convert()),
+ dbesc(datetime_convert()),
+ dbesc($slappy)
+ );
+ }
+ }
}
}
}
break;
}
-
- if(($cmd === 'mail') && ($deliver_status == 0)) {
- $r = q("UPDATE `mail` SET `delivered` = 1 WHERE `id` = %d LIMIT 1",
- intval($item_id)
- );
- }
-
}
// send additional slaps to mentioned remote tags (@foo@example.com)
foreach($url_recipients as $url) {
logger('notifier: urldelivery: ' . $url);
foreach($slaps as $slappy) {
- slapper($owner,$url,$slappy);
+ if($url) {
+ $deliver_status = slapper($owner,$url,$slappy);
+ // TODO: redeliver/queue these items on failure, though there is no contact record
+ }
}
}
}