aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/diaspora.php35
-rw-r--r--include/notifier.php24
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: