diaspora follow from friendika

This commit is contained in:
Friendika 2011-08-14 20:38:31 -07:00
parent 7952961222
commit 0729e205c8
2 changed files with 34 additions and 6 deletions

View File

@ -77,7 +77,7 @@ $decrypted_header = <<< EOT
<iv>$b_inner_iv</iv> <iv>$b_inner_iv</iv>
<aes_key>$b_inner_aes_key</aes_key> <aes_key>$b_inner_aes_key</aes_key>
<author> <author>
<name>{$contact['name']}</name> <name>{$user['username']}</name>
<uri>$handle</uri> <uri>$handle</uri>
</author> </author>
</decrypted_header> </decrypted_header>
@ -170,7 +170,7 @@ function diaspora_decode($importer,$xml) {
if(! $base) { if(! $base) {
logger('mod-diaspora: unable to locate salmon data in xml '); logger('mod-diaspora: unable to locate salmon data in xml ');
dt_return(400); http_status_exit(400);
} }
@ -519,3 +519,24 @@ function diaspora_retraction($importer,$contact,$xml) {
} }
function diaspora_share($me,$contact) {
$a = get_app();
$myaddr = $me['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
$theiraddr = $contact['addr'];
$tpl = get_markup_template('diaspora_share.tpl');
$msg = replace_macros($tpl, array(
'$sender' => myaddr,
'$recipient' => $theiraddr
));
$slap = diaspora_msg_build($msg,$me,$contact,$me['prvkey'],$contact['pubkey']);
post_url($contact['notify'],$slap, array(
'Content-type: application/magic-envelope+xml',
'Content-length: ' . strlen($slap)
));
$return_code = $a->get_curl_code();
return $return_code;
}

View File

@ -71,6 +71,7 @@ function follow_post(&$a) {
$writeable = 1; $writeable = 1;
} }
// check if we already have a contact // check if we already have a contact
// the poll url is more reliable than the profile url, as we may have // the poll url is more reliable than the profile url, as we may have
// indirect links or webfinger links // indirect links or webfinger links
@ -175,10 +176,16 @@ function follow_post(&$a) {
intval(local_user()) intval(local_user())
); );
if(count($r)) {
if((count($r)) && (x($contact,'notify')) && (strlen($contact['notify']))) { if(($contact['network'] == NETWORK_OSTATUS) && (strlen($contact['notify']))) {
require_once('include/salmon.php'); require_once('include/salmon.php');
slapper($r[0],$contact['notify'],$slap); slapper($r[0],$contact['notify'],$slap);
}
if($contact['network'] == NETWORK_DIASPORA) {
require_once('include/diaspora.php');
$ret = diaspora_share($a->user,$r[0]);
logger('mod_follow: diaspora_share returns: ' . $ret);
}
} }
goaway($_SESSION['return_url']); goaway($_SESSION['return_url']);