diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/diaspora.php | 35 | ||||
-rw-r--r-- | include/notifier.php | 24 |
2 files changed, 52 insertions, 7 deletions
diff --git a/include/diaspora.php b/include/diaspora.php index d8be2b2cc..38ee8c1e5 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -540,3 +540,38 @@ function diaspora_share($me,$contact) { return $return_code; } +function diaspora_send_status($item,$owner,$contact) { + + $a = get_app(); + $myaddr = $owner['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3); + $theiraddr = $contact['addr']; + require_once('include/bbcode.php'); + + $body = xmlify(bbcode($item['body'])); + $public = (($item['private']) ? 'false' : 'true'); + + require_once('include/datetime.php'); + $created = datetime_convert('UTC','UTC',$item['created'],'Y-m-d h:i:s \U\T\C'); + + $tpl = get_markup_template('diaspora_post.tpl'); + $msg = replace_macros($tpl, array( + '$body' => $body, + '$guid' => $item['guid'], + '$handle' => xmlify($myaddr), + '$public' => $public, + '$created' => $created + )); + + logger('diaspora_send_status: base message: ' . $msg, LOGGER_DATA); + + $slap = diaspora_msg_build($msg,$owner,$contact,$owner['uprvkey'],$contact['pubkey']); + + post_url($contact['notify'],$slap, array( + 'Content-type: application/magic-envelope+xml', + 'Content-length: ' . strlen($slap) + )); + $return_code = $a->get_curl_code(); + logger('diaspora_send_status: returns: ' . $return_code); + return $return_code; +} + diff --git a/include/notifier.php b/include/notifier.php index bd78d7560..332cd19e3 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -119,7 +119,8 @@ function notifier_run($argv, $argc){ $top_level = true; } - $r = q("SELECT `contact`.*, `user`.`timezone`, `user`.`nickname`, `user`.`sprvkey`, `user`.`spubkey`, + $r = q("SELECT `contact`.*, `user`.`pubkey` AS `upubkey`, `user`.`prvkey` AS `uprvkey`, + `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", @@ -351,7 +352,7 @@ function notifier_run($argv, $argc){ $deliver_status = 0; switch($contact['network']) { - case 'dfrn': + case NETWORK_DFRN: logger('notifier: dfrndelivery: ' . $contact['name']); $deliver_status = dfrn_deliver($owner,$contact,$atom); @@ -369,7 +370,7 @@ function notifier_run($argv, $argc){ ); } break; - case 'stat': + case NETWORK_OSTATUS: // Do not send to otatus if we are not configured to send to public networks if($owner['prvnets']) @@ -419,7 +420,7 @@ function notifier_run($argv, $argc){ } break; - case 'mail': + case NETWORK_MAIL: if(get_config('system','dfrn_only')) break; @@ -496,9 +497,18 @@ function notifier_run($argv, $argc){ mail($addr, $subject, $message, $headers); } break; - case 'feed': - case 'face': - case 'dspr': + case NETWORK_DIASPORA: + if(get_config('system','dfrn_only') || (! get_config('diaspora_enabled'))) + break; + if($top_level) { + diaspora_send_status($parent_item,$owner,$contact); + break; + } + + break; + + case NETWORK_FEED: + case NETWORK_FACEBOOK: if(get_config('system','dfrn_only')) break; default: |