X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fnotifier.php;h=e1bb29eaf22359ec5a283770ffc0c5d475a74002;hb=997cad8685ca4e63b3286ea6bd643656adab7466;hp=98e38fb115ea0ea24b4ef4af5471c4f8873022ae;hpb=e036434b8a2dbd8594c0ac5ac7233f4700e4e475;p=friendica.git diff --git a/include/notifier.php b/include/notifier.php index 98e38fb115..e1bb29eaf2 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -20,6 +20,9 @@ function notifier_run($argv, $argc){ require_once('include/items.php'); require_once('include/bbcode.php'); + load_config('config'); + load_config('system'); + load_hooks(); if($argc < 3) @@ -27,8 +30,6 @@ function notifier_run($argv, $argc){ $a->set_baseurl(get_config('system','url')); - $prv = get_config('system','strict_privacy'); - logger('notifier: invoked: ' . print_r($argv,true)); $cmd = $argv[1]; @@ -73,6 +74,16 @@ function notifier_run($argv, $argc){ 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 @@ -108,7 +119,8 @@ function notifier_run($argv, $argc){ $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) @@ -127,13 +139,13 @@ function notifier_run($argv, $argc){ // 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 @@ -226,6 +238,8 @@ function notifier_run($argv, $argc){ 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']), @@ -233,10 +247,30 @@ function notifier_run($argv, $argc){ '$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 @@ -332,7 +366,10 @@ function notifier_run($argv, $argc){ 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']) { @@ -350,8 +387,6 @@ function notifier_run($argv, $argc){ ); } - - } else { @@ -378,8 +413,12 @@ function notifier_run($argv, $argc){ } } break; + case 'mail': + if(get_config('system','dfrn_only')) + break; + // WARNING: does not currently convert to RFC2047 header encodings, etc. $addr = $contact['addr']; @@ -452,9 +491,11 @@ function notifier_run($argv, $argc){ mail($addr, $subject, $message, $headers); } break; - case 'dspr': case 'feed': case 'face': + case 'dspr': + if(get_config('system','dfrn_only')) + break; default: break; } @@ -463,12 +504,14 @@ function notifier_run($argv, $argc){ // 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 + } } } } @@ -512,11 +555,13 @@ function notifier_run($argv, $argc){ WHERE `network` = 'dfrn' AND `uid` = %d AND `blocked` = 0 AND `pending` = 0 AND `rel` != %d ", intval($owner['uid']), - intval(REL_FAN) + intval(CONTACT_IS_SHARING) ); 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 */ @@ -542,7 +587,6 @@ function notifier_run($argv, $argc){ } if (array_search(__file__,get_included_files())===0){ - echo "run!"; notifier_run($argv,$argc); killme(); }