Merge pull request #2425 from annando/1603-ostatus
OStatus is now a class - and reshare and like seems to work
This commit is contained in:
commit
d523a809a2
8 changed files with 1920 additions and 1629 deletions
|
@ -101,10 +101,10 @@ function cron_run(&$argv, &$argc){
|
|||
|
||||
// Check OStatus conversations
|
||||
// Check only conversations with mentions (for a longer time)
|
||||
check_conversations(true);
|
||||
ostatus::check_conversations(true);
|
||||
|
||||
// Check every conversation
|
||||
check_conversations(false);
|
||||
ostatus::check_conversations(false);
|
||||
|
||||
// Set the gcontact-id in the item table if missing
|
||||
item_set_gcontact();
|
||||
|
|
191
include/dfrn.php
191
include/dfrn.php
|
@ -19,6 +19,7 @@ require_once("include/text.php");
|
|||
require_once("include/oembed.php");
|
||||
require_once("include/html2bbcode.php");
|
||||
require_once("include/bbcode.php");
|
||||
require_once("include/xml.php");
|
||||
|
||||
/**
|
||||
* @brief This class contain functions to create and send DFRN XML files
|
||||
|
@ -286,17 +287,17 @@ class dfrn {
|
|||
$mail = $doc->createElement("dfrn:mail");
|
||||
$sender = $doc->createElement("dfrn:sender");
|
||||
|
||||
xml_add_element($doc, $sender, "dfrn:name", $owner['name']);
|
||||
xml_add_element($doc, $sender, "dfrn:uri", $owner['url']);
|
||||
xml_add_element($doc, $sender, "dfrn:avatar", $owner['thumb']);
|
||||
xml::add_element($doc, $sender, "dfrn:name", $owner['name']);
|
||||
xml::add_element($doc, $sender, "dfrn:uri", $owner['url']);
|
||||
xml::add_element($doc, $sender, "dfrn:avatar", $owner['thumb']);
|
||||
|
||||
$mail->appendChild($sender);
|
||||
|
||||
xml_add_element($doc, $mail, "dfrn:id", $item['uri']);
|
||||
xml_add_element($doc, $mail, "dfrn:in-reply-to", $item['parent-uri']);
|
||||
xml_add_element($doc, $mail, "dfrn:sentdate", datetime_convert('UTC', 'UTC', $item['created'] . '+00:00' , ATOM_TIME));
|
||||
xml_add_element($doc, $mail, "dfrn:subject", $item['title']);
|
||||
xml_add_element($doc, $mail, "dfrn:content", $item['body']);
|
||||
xml::add_element($doc, $mail, "dfrn:id", $item['uri']);
|
||||
xml::add_element($doc, $mail, "dfrn:in-reply-to", $item['parent-uri']);
|
||||
xml::add_element($doc, $mail, "dfrn:sentdate", datetime_convert('UTC', 'UTC', $item['created'] . '+00:00' , ATOM_TIME));
|
||||
xml::add_element($doc, $mail, "dfrn:subject", $item['title']);
|
||||
xml::add_element($doc, $mail, "dfrn:content", $item['body']);
|
||||
|
||||
$root->appendChild($mail);
|
||||
|
||||
|
@ -319,11 +320,11 @@ class dfrn {
|
|||
|
||||
$suggest = $doc->createElement("dfrn:suggest");
|
||||
|
||||
xml_add_element($doc, $suggest, "dfrn:url", $item['url']);
|
||||
xml_add_element($doc, $suggest, "dfrn:name", $item['name']);
|
||||
xml_add_element($doc, $suggest, "dfrn:photo", $item['photo']);
|
||||
xml_add_element($doc, $suggest, "dfrn:request", $item['request']);
|
||||
xml_add_element($doc, $suggest, "dfrn:note", $item['note']);
|
||||
xml::add_element($doc, $suggest, "dfrn:url", $item['url']);
|
||||
xml::add_element($doc, $suggest, "dfrn:name", $item['name']);
|
||||
xml::add_element($doc, $suggest, "dfrn:photo", $item['photo']);
|
||||
xml::add_element($doc, $suggest, "dfrn:request", $item['request']);
|
||||
xml::add_element($doc, $suggest, "dfrn:note", $item['note']);
|
||||
|
||||
$root->appendChild($suggest);
|
||||
|
||||
|
@ -365,16 +366,16 @@ class dfrn {
|
|||
|
||||
$relocate = $doc->createElement("dfrn:relocate");
|
||||
|
||||
xml_add_element($doc, $relocate, "dfrn:url", $owner['url']);
|
||||
xml_add_element($doc, $relocate, "dfrn:name", $owner['name']);
|
||||
xml_add_element($doc, $relocate, "dfrn:photo", $photos[4]);
|
||||
xml_add_element($doc, $relocate, "dfrn:thumb", $photos[5]);
|
||||
xml_add_element($doc, $relocate, "dfrn:micro", $photos[6]);
|
||||
xml_add_element($doc, $relocate, "dfrn:request", $owner['request']);
|
||||
xml_add_element($doc, $relocate, "dfrn:confirm", $owner['confirm']);
|
||||
xml_add_element($doc, $relocate, "dfrn:notify", $owner['notify']);
|
||||
xml_add_element($doc, $relocate, "dfrn:poll", $owner['poll']);
|
||||
xml_add_element($doc, $relocate, "dfrn:sitepubkey", get_config('system','site_pubkey'));
|
||||
xml::add_element($doc, $relocate, "dfrn:url", $owner['url']);
|
||||
xml::add_element($doc, $relocate, "dfrn:name", $owner['name']);
|
||||
xml::add_element($doc, $relocate, "dfrn:photo", $photos[4]);
|
||||
xml::add_element($doc, $relocate, "dfrn:thumb", $photos[5]);
|
||||
xml::add_element($doc, $relocate, "dfrn:micro", $photos[6]);
|
||||
xml::add_element($doc, $relocate, "dfrn:request", $owner['request']);
|
||||
xml::add_element($doc, $relocate, "dfrn:confirm", $owner['confirm']);
|
||||
xml::add_element($doc, $relocate, "dfrn:notify", $owner['notify']);
|
||||
xml::add_element($doc, $relocate, "dfrn:poll", $owner['poll']);
|
||||
xml::add_element($doc, $relocate, "dfrn:sitepubkey", get_config('system','site_pubkey'));
|
||||
|
||||
$root->appendChild($relocate);
|
||||
|
||||
|
@ -410,39 +411,39 @@ class dfrn {
|
|||
$root->setAttribute("xmlns:ostatus", NAMESPACE_OSTATUS);
|
||||
$root->setAttribute("xmlns:statusnet", NAMESPACE_STATUSNET);
|
||||
|
||||
xml_add_element($doc, $root, "id", app::get_baseurl()."/profile/".$owner["nick"]);
|
||||
xml_add_element($doc, $root, "title", $owner["name"]);
|
||||
xml::add_element($doc, $root, "id", app::get_baseurl()."/profile/".$owner["nick"]);
|
||||
xml::add_element($doc, $root, "title", $owner["name"]);
|
||||
|
||||
$attributes = array("uri" => "https://friendi.ca", "version" => FRIENDICA_VERSION."-".DB_UPDATE_VERSION);
|
||||
xml_add_element($doc, $root, "generator", FRIENDICA_PLATFORM, $attributes);
|
||||
xml::add_element($doc, $root, "generator", FRIENDICA_PLATFORM, $attributes);
|
||||
|
||||
$attributes = array("rel" => "license", "href" => "http://creativecommons.org/licenses/by/3.0/");
|
||||
xml_add_element($doc, $root, "link", "", $attributes);
|
||||
xml::add_element($doc, $root, "link", "", $attributes);
|
||||
|
||||
$attributes = array("rel" => "alternate", "type" => "text/html", "href" => $alternatelink);
|
||||
xml_add_element($doc, $root, "link", "", $attributes);
|
||||
xml::add_element($doc, $root, "link", "", $attributes);
|
||||
|
||||
|
||||
if ($public) {
|
||||
// DFRN itself doesn't uses this. But maybe someone else wants to subscribe to the public feed.
|
||||
ostatus_hublinks($doc, $root);
|
||||
ostatus::hublinks($doc, $root);
|
||||
|
||||
$attributes = array("rel" => "salmon", "href" => app::get_baseurl()."/salmon/".$owner["nick"]);
|
||||
xml_add_element($doc, $root, "link", "", $attributes);
|
||||
xml::add_element($doc, $root, "link", "", $attributes);
|
||||
|
||||
$attributes = array("rel" => "http://salmon-protocol.org/ns/salmon-replies", "href" => app::get_baseurl()."/salmon/".$owner["nick"]);
|
||||
xml_add_element($doc, $root, "link", "", $attributes);
|
||||
xml::add_element($doc, $root, "link", "", $attributes);
|
||||
|
||||
$attributes = array("rel" => "http://salmon-protocol.org/ns/salmon-mention", "href" => app::get_baseurl()."/salmon/".$owner["nick"]);
|
||||
xml_add_element($doc, $root, "link", "", $attributes);
|
||||
xml::add_element($doc, $root, "link", "", $attributes);
|
||||
}
|
||||
|
||||
if ($owner['page-flags'] == PAGE_COMMUNITY)
|
||||
xml_add_element($doc, $root, "dfrn:community", 1);
|
||||
xml::add_element($doc, $root, "dfrn:community", 1);
|
||||
|
||||
/// @todo We need a way to transmit the different page flags like "PAGE_PRVGROUP"
|
||||
|
||||
xml_add_element($doc, $root, "updated", datetime_convert("UTC", "UTC", "now", ATOM_TIME));
|
||||
xml::add_element($doc, $root, "updated", datetime_convert("UTC", "UTC", "now", ATOM_TIME));
|
||||
|
||||
$author = self::add_author($doc, $owner, $authorelement, $public);
|
||||
$root->appendChild($author);
|
||||
|
@ -468,26 +469,26 @@ class dfrn {
|
|||
$picdate = datetime_convert('UTC', 'UTC', $owner['avatar-date'].'+00:00', ATOM_TIME);
|
||||
|
||||
$attributes = array("dfrn:updated" => $namdate);
|
||||
xml_add_element($doc, $author, "name", $owner["name"], $attributes);
|
||||
xml::add_element($doc, $author, "name", $owner["name"], $attributes);
|
||||
|
||||
$attributes = array("dfrn:updated" => $namdate);
|
||||
xml_add_element($doc, $author, "uri", app::get_baseurl().'/profile/'.$owner["nickname"], $attributes);
|
||||
xml::add_element($doc, $author, "uri", app::get_baseurl().'/profile/'.$owner["nickname"], $attributes);
|
||||
|
||||
$attributes = array("dfrn:updated" => $namdate);
|
||||
xml_add_element($doc, $author, "dfrn:handle", $owner["addr"], $attributes);
|
||||
xml::add_element($doc, $author, "dfrn:handle", $owner["addr"], $attributes);
|
||||
|
||||
$attributes = array("rel" => "photo", "type" => "image/jpeg", "dfrn:updated" => $picdate,
|
||||
"media:width" => 175, "media:height" => 175, "href" => $owner['photo']);
|
||||
xml_add_element($doc, $author, "link", "", $attributes);
|
||||
xml::add_element($doc, $author, "link", "", $attributes);
|
||||
|
||||
$attributes = array("rel" => "avatar", "type" => "image/jpeg", "dfrn:updated" => $picdate,
|
||||
"media:width" => 175, "media:height" => 175, "href" => $owner['photo']);
|
||||
xml_add_element($doc, $author, "link", "", $attributes);
|
||||
xml::add_element($doc, $author, "link", "", $attributes);
|
||||
|
||||
$birthday = feed_birthday($owner['uid'], $owner['timezone']);
|
||||
|
||||
if ($birthday)
|
||||
xml_add_element($doc, $author, "dfrn:birthday", $birthday);
|
||||
xml::add_element($doc, $author, "dfrn:birthday", $birthday);
|
||||
|
||||
// The following fields will only be generated if this isn't for a public feed
|
||||
if ($public)
|
||||
|
@ -502,25 +503,25 @@ class dfrn {
|
|||
intval($owner['uid']));
|
||||
if ($r) {
|
||||
$profile = $r[0];
|
||||
xml_add_element($doc, $author, "poco:displayName", $profile["name"]);
|
||||
xml_add_element($doc, $author, "poco:updated", $namdate);
|
||||
xml::add_element($doc, $author, "poco:displayName", $profile["name"]);
|
||||
xml::add_element($doc, $author, "poco:updated", $namdate);
|
||||
|
||||
if (trim($profile["dob"]) != "0000-00-00")
|
||||
xml_add_element($doc, $author, "poco:birthday", "0000-".date("m-d", strtotime($profile["dob"])));
|
||||
xml::add_element($doc, $author, "poco:birthday", "0000-".date("m-d", strtotime($profile["dob"])));
|
||||
|
||||
xml_add_element($doc, $author, "poco:note", $profile["about"]);
|
||||
xml_add_element($doc, $author, "poco:preferredUsername", $profile["nickname"]);
|
||||
xml::add_element($doc, $author, "poco:note", $profile["about"]);
|
||||
xml::add_element($doc, $author, "poco:preferredUsername", $profile["nickname"]);
|
||||
|
||||
$savetz = date_default_timezone_get();
|
||||
date_default_timezone_set($profile["timezone"]);
|
||||
xml_add_element($doc, $author, "poco:utcOffset", date("P"));
|
||||
xml::add_element($doc, $author, "poco:utcOffset", date("P"));
|
||||
date_default_timezone_set($savetz);
|
||||
|
||||
if (trim($profile["homepage"]) != "") {
|
||||
$urls = $doc->createElement("poco:urls");
|
||||
xml_add_element($doc, $urls, "poco:type", "homepage");
|
||||
xml_add_element($doc, $urls, "poco:value", $profile["homepage"]);
|
||||
xml_add_element($doc, $urls, "poco:primary", "true");
|
||||
xml::add_element($doc, $urls, "poco:type", "homepage");
|
||||
xml::add_element($doc, $urls, "poco:value", $profile["homepage"]);
|
||||
xml::add_element($doc, $urls, "poco:primary", "true");
|
||||
$author->appendChild($urls);
|
||||
}
|
||||
|
||||
|
@ -528,7 +529,7 @@ class dfrn {
|
|||
$keywords = explode(",", $profile["pub_keywords"]);
|
||||
|
||||
foreach ($keywords AS $keyword)
|
||||
xml_add_element($doc, $author, "poco:tags", trim($keyword));
|
||||
xml::add_element($doc, $author, "poco:tags", trim($keyword));
|
||||
|
||||
}
|
||||
|
||||
|
@ -536,25 +537,25 @@ class dfrn {
|
|||
$xmpp = "";
|
||||
if (trim($xmpp) != "") {
|
||||
$ims = $doc->createElement("poco:ims");
|
||||
xml_add_element($doc, $ims, "poco:type", "xmpp");
|
||||
xml_add_element($doc, $ims, "poco:value", $xmpp);
|
||||
xml_add_element($doc, $ims, "poco:primary", "true");
|
||||
xml::add_element($doc, $ims, "poco:type", "xmpp");
|
||||
xml::add_element($doc, $ims, "poco:value", $xmpp);
|
||||
xml::add_element($doc, $ims, "poco:primary", "true");
|
||||
$author->appendChild($ims);
|
||||
}
|
||||
|
||||
if (trim($profile["locality"].$profile["region"].$profile["country-name"]) != "") {
|
||||
$element = $doc->createElement("poco:address");
|
||||
|
||||
xml_add_element($doc, $element, "poco:formatted", formatted_location($profile));
|
||||
xml::add_element($doc, $element, "poco:formatted", formatted_location($profile));
|
||||
|
||||
if (trim($profile["locality"]) != "")
|
||||
xml_add_element($doc, $element, "poco:locality", $profile["locality"]);
|
||||
xml::add_element($doc, $element, "poco:locality", $profile["locality"]);
|
||||
|
||||
if (trim($profile["region"]) != "")
|
||||
xml_add_element($doc, $element, "poco:region", $profile["region"]);
|
||||
xml::add_element($doc, $element, "poco:region", $profile["region"]);
|
||||
|
||||
if (trim($profile["country-name"]) != "")
|
||||
xml_add_element($doc, $element, "poco:country", $profile["country-name"]);
|
||||
xml::add_element($doc, $element, "poco:country", $profile["country-name"]);
|
||||
|
||||
$author->appendChild($element);
|
||||
}
|
||||
|
@ -578,9 +579,9 @@ class dfrn {
|
|||
$contact = get_contact_details_by_url($contact_url, $item["uid"]);
|
||||
|
||||
$author = $doc->createElement($element);
|
||||
xml_add_element($doc, $author, "name", $contact["name"]);
|
||||
xml_add_element($doc, $author, "uri", $contact["url"]);
|
||||
xml_add_element($doc, $author, "dfrn:handle", $contact["addr"]);
|
||||
xml::add_element($doc, $author, "name", $contact["name"]);
|
||||
xml::add_element($doc, $author, "uri", $contact["url"]);
|
||||
xml::add_element($doc, $author, "dfrn:handle", $contact["addr"]);
|
||||
|
||||
/// @Todo
|
||||
/// - Check real image type and image size
|
||||
|
@ -591,7 +592,7 @@ class dfrn {
|
|||
"media:width" => 80,
|
||||
"media:height" => 80,
|
||||
"href" => $contact["photo"]);
|
||||
xml_add_element($doc, $author, "link", "", $attributes);
|
||||
xml::add_element($doc, $author, "link", "", $attributes);
|
||||
|
||||
$attributes = array(
|
||||
"rel" => "avatar",
|
||||
|
@ -599,7 +600,7 @@ class dfrn {
|
|||
"media:width" => 80,
|
||||
"media:height" => 80,
|
||||
"href" => $contact["photo"]);
|
||||
xml_add_element($doc, $author, "link", "", $attributes);
|
||||
xml::add_element($doc, $author, "link", "", $attributes);
|
||||
|
||||
return $author;
|
||||
}
|
||||
|
@ -622,11 +623,11 @@ class dfrn {
|
|||
if(!$r)
|
||||
return false;
|
||||
if($r->type)
|
||||
xml_add_element($doc, $entry, "activity:object-type", $r->type);
|
||||
xml::add_element($doc, $entry, "activity:object-type", $r->type);
|
||||
if($r->id)
|
||||
xml_add_element($doc, $entry, "id", $r->id);
|
||||
xml::add_element($doc, $entry, "id", $r->id);
|
||||
if($r->title)
|
||||
xml_add_element($doc, $entry, "title", $r->title);
|
||||
xml::add_element($doc, $entry, "title", $r->title);
|
||||
if($r->link) {
|
||||
if(substr($r->link,0,1) == '<') {
|
||||
if(strstr($r->link,'&') && (! strstr($r->link,'&')))
|
||||
|
@ -641,16 +642,16 @@ class dfrn {
|
|||
$attributes = array();
|
||||
foreach ($link->attributes() AS $parameter => $value)
|
||||
$attributes[$parameter] = $value;
|
||||
xml_add_element($doc, $entry, "link", "", $attributes);
|
||||
xml::add_element($doc, $entry, "link", "", $attributes);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$attributes = array("rel" => "alternate", "type" => "text/html", "href" => $r->link);
|
||||
xml_add_element($doc, $entry, "link", "", $attributes);
|
||||
xml::add_element($doc, $entry, "link", "", $attributes);
|
||||
}
|
||||
}
|
||||
if($r->content)
|
||||
xml_add_element($doc, $entry, "content", bbcode($r->content), array("type" => "html"));
|
||||
xml::add_element($doc, $entry, "content", bbcode($r->content), array("type" => "html"));
|
||||
|
||||
return $entry;
|
||||
}
|
||||
|
@ -684,7 +685,7 @@ class dfrn {
|
|||
if(trim($matches[4]) != "")
|
||||
$attributes["title"] = trim($matches[4]);
|
||||
|
||||
xml_add_element($doc, $root, "link", "", $attributes);
|
||||
xml::add_element($doc, $root, "link", "", $attributes);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -711,7 +712,7 @@ class dfrn {
|
|||
|
||||
if($item['deleted']) {
|
||||
$attributes = array("ref" => $item['uri'], "when" => datetime_convert('UTC','UTC',$item['edited'] . '+00:00',ATOM_TIME));
|
||||
return xml_create_element($doc, "at:deleted-entry", "", $attributes);
|
||||
return xml::create_element($doc, "at:deleted-entry", "", $attributes);
|
||||
}
|
||||
|
||||
$entry = $doc->createElement("entry");
|
||||
|
@ -745,66 +746,66 @@ class dfrn {
|
|||
$attributes = array("ref" => $parent_item, "type" => "text/html",
|
||||
"href" => app::get_baseurl().'/display/'.$parent[0]['guid'],
|
||||
"dfrn:diaspora_guid" => $parent[0]['guid']);
|
||||
xml_add_element($doc, $entry, "thr:in-reply-to", "", $attributes);
|
||||
xml::add_element($doc, $entry, "thr:in-reply-to", "", $attributes);
|
||||
}
|
||||
|
||||
xml_add_element($doc, $entry, "id", $item["uri"]);
|
||||
xml_add_element($doc, $entry, "title", $item["title"]);
|
||||
xml::add_element($doc, $entry, "id", $item["uri"]);
|
||||
xml::add_element($doc, $entry, "title", $item["title"]);
|
||||
|
||||
xml_add_element($doc, $entry, "published", datetime_convert("UTC","UTC",$item["created"]."+00:00",ATOM_TIME));
|
||||
xml_add_element($doc, $entry, "updated", datetime_convert("UTC","UTC",$item["edited"]."+00:00",ATOM_TIME));
|
||||
xml::add_element($doc, $entry, "published", datetime_convert("UTC","UTC",$item["created"]."+00:00",ATOM_TIME));
|
||||
xml::add_element($doc, $entry, "updated", datetime_convert("UTC","UTC",$item["edited"]."+00:00",ATOM_TIME));
|
||||
|
||||
// "dfrn:env" is used to read the content
|
||||
xml_add_element($doc, $entry, "dfrn:env", base64url_encode($body, true));
|
||||
xml::add_element($doc, $entry, "dfrn:env", base64url_encode($body, true));
|
||||
|
||||
// The "content" field is not read by the receiver. We could remove it when the type is "text"
|
||||
// We keep it at the moment, maybe there is some old version that doesn't read "dfrn:env"
|
||||
xml_add_element($doc, $entry, "content", (($type == 'html') ? $htmlbody : $body), array("type" => $type));
|
||||
xml::add_element($doc, $entry, "content", (($type == 'html') ? $htmlbody : $body), array("type" => $type));
|
||||
|
||||
// We save this value in "plink". Maybe we should read it from there as well?
|
||||
xml_add_element($doc, $entry, "link", "", array("rel" => "alternate", "type" => "text/html",
|
||||
xml::add_element($doc, $entry, "link", "", array("rel" => "alternate", "type" => "text/html",
|
||||
"href" => app::get_baseurl()."/display/".$item["guid"]));
|
||||
|
||||
// "comment-allow" is some old fashioned stuff for old Friendica versions.
|
||||
// It is included in the rewritten code for completeness
|
||||
if ($comment)
|
||||
xml_add_element($doc, $entry, "dfrn:comment-allow", intval($item['last-child']));
|
||||
xml::add_element($doc, $entry, "dfrn:comment-allow", intval($item['last-child']));
|
||||
|
||||
if($item['location'])
|
||||
xml_add_element($doc, $entry, "dfrn:location", $item['location']);
|
||||
xml::add_element($doc, $entry, "dfrn:location", $item['location']);
|
||||
|
||||
if($item['coord'])
|
||||
xml_add_element($doc, $entry, "georss:point", $item['coord']);
|
||||
xml::add_element($doc, $entry, "georss:point", $item['coord']);
|
||||
|
||||
if(($item['private']) || strlen($item['allow_cid']) || strlen($item['allow_gid']) || strlen($item['deny_cid']) || strlen($item['deny_gid']))
|
||||
xml_add_element($doc, $entry, "dfrn:private", (($item['private']) ? $item['private'] : 1));
|
||||
xml::add_element($doc, $entry, "dfrn:private", (($item['private']) ? $item['private'] : 1));
|
||||
|
||||
if($item['extid'])
|
||||
xml_add_element($doc, $entry, "dfrn:extid", $item['extid']);
|
||||
xml::add_element($doc, $entry, "dfrn:extid", $item['extid']);
|
||||
|
||||
if($item['bookmark'])
|
||||
xml_add_element($doc, $entry, "dfrn:bookmark", "true");
|
||||
xml::add_element($doc, $entry, "dfrn:bookmark", "true");
|
||||
|
||||
if($item['app'])
|
||||
xml_add_element($doc, $entry, "statusnet:notice_info", "", array("local_id" => $item['id'], "source" => $item['app']));
|
||||
xml::add_element($doc, $entry, "statusnet:notice_info", "", array("local_id" => $item['id'], "source" => $item['app']));
|
||||
|
||||
xml_add_element($doc, $entry, "dfrn:diaspora_guid", $item["guid"]);
|
||||
xml::add_element($doc, $entry, "dfrn:diaspora_guid", $item["guid"]);
|
||||
|
||||
// The signed text contains the content in Markdown, the sender handle and the signatur for the content
|
||||
// It is needed for relayed comments to Diaspora.
|
||||
if($item['signed_text']) {
|
||||
$sign = base64_encode(json_encode(array('signed_text' => $item['signed_text'],'signature' => $item['signature'],'signer' => $item['signer'])));
|
||||
xml_add_element($doc, $entry, "dfrn:diaspora_signature", $sign);
|
||||
xml::add_element($doc, $entry, "dfrn:diaspora_signature", $sign);
|
||||
}
|
||||
|
||||
xml_add_element($doc, $entry, "activity:verb", construct_verb($item));
|
||||
xml::add_element($doc, $entry, "activity:verb", construct_verb($item));
|
||||
|
||||
if ($item['object-type'] != "")
|
||||
xml_add_element($doc, $entry, "activity:object-type", $item['object-type']);
|
||||
xml::add_element($doc, $entry, "activity:object-type", $item['object-type']);
|
||||
elseif ($item['id'] == $item['parent'])
|
||||
xml_add_element($doc, $entry, "activity:object-type", ACTIVITY_OBJ_NOTE);
|
||||
xml::add_element($doc, $entry, "activity:object-type", ACTIVITY_OBJ_NOTE);
|
||||
else
|
||||
xml_add_element($doc, $entry, "activity:object-type", ACTIVITY_OBJ_COMMENT);
|
||||
xml::add_element($doc, $entry, "activity:object-type", ACTIVITY_OBJ_COMMENT);
|
||||
|
||||
$actobj = self::create_activity($doc, "activity:object", $item['object']);
|
||||
if ($actobj)
|
||||
|
@ -819,7 +820,7 @@ class dfrn {
|
|||
if(count($tags)) {
|
||||
foreach($tags as $t)
|
||||
if (($type != 'html') OR ($t[0] != "@"))
|
||||
xml_add_element($doc, $entry, "category", "", array("scheme" => "X-DFRN:".$t[0].":".$t[1], "term" => $t[2]));
|
||||
xml::add_element($doc, $entry, "category", "", array("scheme" => "X-DFRN:".$t[0].":".$t[1], "term" => $t[2]));
|
||||
}
|
||||
|
||||
if(count($tags))
|
||||
|
@ -832,11 +833,11 @@ class dfrn {
|
|||
intval($owner["uid"]),
|
||||
dbesc(normalise_link($mention)));
|
||||
if ($r[0]["forum"] OR $r[0]["prv"])
|
||||
xml_add_element($doc, $entry, "link", "", array("rel" => "mentioned",
|
||||
xml::add_element($doc, $entry, "link", "", array("rel" => "mentioned",
|
||||
"ostatus:object-type" => ACTIVITY_OBJ_GROUP,
|
||||
"href" => $mention));
|
||||
else
|
||||
xml_add_element($doc, $entry, "link", "", array("rel" => "mentioned",
|
||||
xml::add_element($doc, $entry, "link", "", array("rel" => "mentioned",
|
||||
"ostatus:object-type" => ACTIVITY_OBJ_PERSON,
|
||||
"href" => $mention));
|
||||
}
|
||||
|
@ -1323,7 +1324,7 @@ class dfrn {
|
|||
$obj_element = $obj_doc->createElementNS(NAMESPACE_ATOM1, $element);
|
||||
|
||||
$activity_type = $xpath->query("activity:object-type/text()", $activity)->item(0)->nodeValue;
|
||||
xml_add_element($obj_doc, $obj_element, "type", $activity_type);
|
||||
xml::add_element($obj_doc, $obj_element, "type", $activity_type);
|
||||
|
||||
$id = $xpath->query("atom:id", $activity)->item(0);
|
||||
if (is_object($id))
|
||||
|
|
|
@ -383,9 +383,9 @@ function item_store($arr,$force_parent = false, $notify = false, $dontcache = fa
|
|||
// Converting the plink
|
||||
if ($arr['network'] == NETWORK_OSTATUS) {
|
||||
if (isset($arr['plink']))
|
||||
$arr['plink'] = ostatus_convert_href($arr['plink']);
|
||||
$arr['plink'] = ostatus::convert_href($arr['plink']);
|
||||
elseif (isset($arr['uri']))
|
||||
$arr['plink'] = ostatus_convert_href($arr['uri']);
|
||||
$arr['plink'] = ostatus::convert_href($arr['uri']);
|
||||
}
|
||||
|
||||
if(x($arr, 'gravity'))
|
||||
|
@ -1243,7 +1243,7 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0, $pass = 0)
|
|||
//$tempfile = tempnam(get_temppath(), "ostatus2");
|
||||
//file_put_contents($tempfile, $xml);
|
||||
logger("Consume OStatus messages ", LOGGER_DEBUG);
|
||||
ostatus_import($xml,$importer,$contact, $hub);
|
||||
ostatus::import($xml,$importer,$contact, $hub);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -223,7 +223,7 @@ function notifier_run(&$argv, &$argc){
|
|||
|
||||
if(! ($mail || $fsuggest || $relocate)) {
|
||||
|
||||
$slap = ostatus_salmon($target_item,$owner);
|
||||
$slap = ostatus::salmon($target_item,$owner);
|
||||
|
||||
require_once('include/group.php');
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -16,7 +16,7 @@ function handle_pubsubhubbub() {
|
|||
|
||||
logger("Generate feed for user ".$rr['nickname']." - last updated ".$rr['last_update'], LOGGER_DEBUG);
|
||||
|
||||
$params = ostatus_feed($a, $rr['nickname'], $rr['last_update']);
|
||||
$params = ostatus::feed($a, $rr['nickname'], $rr['last_update']);
|
||||
$hmac_sig = hash_hmac("sha1", $params, $rr['secret']);
|
||||
|
||||
$headers = array("Content-type: application/atom+xml",
|
||||
|
|
|
@ -92,5 +92,40 @@ class xml {
|
|||
self::copy($childentry, $child, $childfield);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Create an XML element
|
||||
*
|
||||
* @param object $doc XML root
|
||||
* @param string $element XML element name
|
||||
* @param string $value XML value
|
||||
* @param array $attributes array containing the attributes
|
||||
*
|
||||
* @return object XML element object
|
||||
*/
|
||||
public static function create_element($doc, $element, $value = "", $attributes = array()) {
|
||||
$element = $doc->createElement($element, xmlify($value));
|
||||
|
||||
foreach ($attributes AS $key => $value) {
|
||||
$attribute = $doc->createAttribute($key);
|
||||
$attribute->value = xmlify($value);
|
||||
$element->appendChild($attribute);
|
||||
}
|
||||
return $element;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Create an XML and append it to the parent object
|
||||
*
|
||||
* @param object $doc XML root
|
||||
* @param object $parent parent object
|
||||
* @param string $element XML element name
|
||||
* @param string $value XML value
|
||||
* @param array $attributes array containing the attributes
|
||||
*/
|
||||
public static function add_element($doc, $parent, $element, $value = "", $attributes = array()) {
|
||||
$element = self::create_element($doc, $element, $value, $attributes);
|
||||
$parent->appendChild($element);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -84,7 +84,7 @@ function salmon_post(&$a) {
|
|||
// decode the data
|
||||
$data = base64url_decode($data);
|
||||
|
||||
$author = ostatus_salmon_author($data,$importer);
|
||||
$author = ostatus::salmon_author($data,$importer);
|
||||
$author_link = $author["author-link"];
|
||||
|
||||
if(! $author_link) {
|
||||
|
@ -181,7 +181,7 @@ function salmon_post(&$a) {
|
|||
|
||||
$contact_rec = ((count($r)) ? $r[0] : null);
|
||||
|
||||
ostatus_import($data,$importer,$contact_rec, $hub);
|
||||
ostatus::import($data,$importer,$contact_rec, $hub);
|
||||
|
||||
http_status_exit(200);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue