require_once('include/items.php');
require_once('include/bbcode.php');
+ load_config('config');
+ load_config('system');
+
load_hooks();
if($argc < 3)
$a->set_baseurl(get_config('system','url'));
- $prv = get_config('system','strict_privacy');
-
logger('notifier: invoked: ' . print_r($argv,true));
$cmd = $argv[1];
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
$top_level = true;
}
- $r = q("SELECT `contact`.*, `user`.`timezone`, `user`.`nickname`, `user`.`sprvkey`, `user`.`spubkey`, `user`.`page-flags`
+ $r = q("SELECT `contact`.*, `user`.`timezone`, `user`.`nickname`, `user`.`sprvkey`, `user`.`spubkey`,
+ `user`.`page-flags`, `user`.`prvnets`
FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid`
WHERE `contact`.`uid` = %d AND `contact`.`self` = 1 LIMIT 1",
intval($uid)
// 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':
- if($prv)
+ // 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']) {
);
}
-
-
}
else {
}
}
break;
+
case 'mail':
+ if(get_config('system','dfrn_only'))
+ break;
+
// WARNING: does not currently convert to RFC2047 header encodings, etc.
$addr = $contact['addr'];
mail($addr, $subject, $message, $headers);
}
break;
- case 'dspr':
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 && (! $prv)) {
- 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((count($r)) && (($max_allowed == 0) || (count($r) < $max_allowed))) {
+ logger('pubdeliver: ' . print_r($r,true));
+
foreach($r as $rr) {
/* Don't deliver to folks who have already been delivered to */
}
if (array_search(__file__,get_included_files())===0){
- echo "run!";
notifier_run($argv,$argc);
killme();
}