require_once('include/items.php');
require_once('include/bbcode.php');
+ load_config('config');
+ load_config('system');
+
load_hooks();
if($argc < 3)
if(! count($items))
return;
}
+ elseif($cmd === 'suggest') {
+ $suggest = q("SELECT * FROM `fsuggest` WHERE `id` = %d LIMIT 1",
+ intval($item_id)
+ );
+ if(! count($suggest))
+ return;
+ $uid = $suggest[0]['uid'];
+ $recipients[] = $suggest[0]['cid'];
+ $item = $suggest[0];
+ }
else {
// find ancestors
// fill this in with a single salmon slap if applicable
$slap = '';
- if($cmd != 'mail') {
+ if($cmd != 'mail' && $cmd != 'suggest') {
require_once('include/group.php');
$parent = $items[0];
- if($parent['type'] === 'remote' && (! $expire)) {
+ if($parent['wall'] == 0 && (! $expire)) {
// local followup to remote post
$followup = true;
$notify_hub = false; // not public
if($cmd === 'mail') {
$notify_hub = false; // mail is not public
+ $body = fix_private_photos($item['body'],$owner['uid']);
+
$atom .= replace_macros($mail_template, array(
'$name' => xmlify($owner['name']),
'$profile_page' => xmlify($owner['url']),
'$item_id' => xmlify($item['uri']),
'$subject' => xmlify($item['title']),
'$created' => xmlify(datetime_convert('UTC', 'UTC', $item['created'] . '+00:00' , ATOM_TIME)),
- '$content' => xmlify($item['body']),
+ '$content' => xmlify($body),
'$parent_id' => xmlify($item['parent-uri'])
));
}
+ elseif($cmd === 'suggest') {
+ $notify_hub = false; // suggestions are not public
+
+ $sugg_template = get_markup_template('atom_suggest.tpl');
+
+ $atom .= replace_macros($sugg_template, array(
+ '$name' => xmlify($item['name']),
+ '$url' => xmlify($item['url']),
+ '$photo' => xmlify($item['photo']),
+ '$request' => xmlify($item['request']),
+ '$note' => xmlify($item['note'])
+ ));
+
+ // We don't need this any more
+
+ q("DELETE FROM `fsuggest` WHERE `id` = %d LIMIT 1",
+ intval($item['id'])
+ );
+
+ }
else {
if($followup) {
foreach($items as $item) { // there is only one item
}
break;
case 'stat':
+
+ // Do not send to otatus if we are not configured to send to public networks
if($owner['prvnets'])
break;
+ if(get_config('system','ostatus_disabled') || get_config('system','dfrn_only'))
+ break;
+
if($followup && $contact['notify']) {
logger('notifier: slapdelivery: ' . $contact['name']);
$deliver_status = slapper($owner,$contact['notify'],$slap);
);
}
-
-
}
else {
case 'mail':
+ if(get_config('system','dfrn_only'))
+ break;
+
// WARNING: does not currently convert to RFC2047 header encodings, etc.
$addr = $contact['addr'];
case 'feed':
case 'face':
case 'dspr':
+ if(get_config('system','dfrn_only'))
+ break;
default:
break;
}
// send additional slaps to mentioned remote tags (@foo@example.com)
- if($slap && count($url_recipients) && $followup && $notify_hub && (! $expire)) {
- foreach($url_recipients as $url) {
- if($url) {
- logger('notifier: urldelivery: ' . $url);
- $deliver_status = slapper($owner,$url,$slap);
- // TODO: redeliver/queue these items on failure, though there is no contact record
+ if($slap && count($url_recipients) && ($followup || $top_level) && $notify_hub && (! $expire)) {
+ if(! get_config('system','dfrn_only')) {
+ foreach($url_recipients as $url) {
+ if($url) {
+ logger('notifier: urldelivery: ' . $url);
+ $deliver_status = slapper($owner,$url,$slap);
+ // TODO: redeliver/queue these items on failure, though there is no contact record
+ }
}
}
}
}
if (array_search(__file__,get_included_files())===0){
- echo "run!";
notifier_run($argv,$argc);
killme();
}