mirror of
https://github.com/friendica/friendica
synced 2024-12-23 17:20:16 +00:00
DFRN-Import is now nearly complete, changed namespace constants
This commit is contained in:
parent
1cdcb9fc2e
commit
decaac6c31
3 changed files with 248 additions and 92 deletions
|
@ -386,15 +386,15 @@ class dfrn {
|
||||||
$root = $doc->createElementNS(NS_ATOM, 'feed');
|
$root = $doc->createElementNS(NS_ATOM, 'feed');
|
||||||
$doc->appendChild($root);
|
$doc->appendChild($root);
|
||||||
|
|
||||||
$root->setAttribute("xmlns:thr", NS_THR);
|
$root->setAttribute("xmlns:thr", NAMESPACE_THREAD);
|
||||||
$root->setAttribute("xmlns:at", "http://purl.org/atompub/tombstones/1.0");
|
$root->setAttribute("xmlns:at", NAMESPACE_TOMB);
|
||||||
$root->setAttribute("xmlns:media", NS_MEDIA);
|
$root->setAttribute("xmlns:media", NAMESPACE_MEDIA);
|
||||||
$root->setAttribute("xmlns:dfrn", "http://purl.org/macgirvin/dfrn/1.0");
|
$root->setAttribute("xmlns:dfrn", NAMESPACE_DFRN);
|
||||||
$root->setAttribute("xmlns:activity", NS_ACTIVITY);
|
$root->setAttribute("xmlns:activity", NAMESPACE_ACTIVITY);
|
||||||
$root->setAttribute("xmlns:georss", NS_GEORSS);
|
$root->setAttribute("xmlns:georss", NAMESPACE_GEORSS);
|
||||||
$root->setAttribute("xmlns:poco", NS_POCO);
|
$root->setAttribute("xmlns:poco", NAMESPACE_POCO);
|
||||||
$root->setAttribute("xmlns:ostatus", NS_OSTATUS);
|
$root->setAttribute("xmlns:ostatus", NAMESPACE_OSTATUS);
|
||||||
$root->setAttribute("xmlns:statusnet", NS_STATUSNET);
|
$root->setAttribute("xmlns:statusnet", NAMESPACE_STATUSNET);
|
||||||
|
|
||||||
xml_add_element($doc, $root, "id", app::get_baseurl()."/profile/".$owner["nick"]);
|
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, "title", $owner["name"]);
|
||||||
|
|
|
@ -263,57 +263,215 @@ $onlyfetch = true; // Test
|
||||||
return($objxml);
|
return($objxml);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function process_mail($header, $xpath, $mail, $importer, $contact) {
|
private function process_mail($xpath, $mail, $importer) {
|
||||||
|
|
||||||
$msg = array();
|
$msg = array();
|
||||||
$msg["uid"] = $importer['importer_uid'];
|
$msg["uid"] = $importer['importer_uid'];
|
||||||
$msg["from-name"] = $xpath->query('dfrn:sender/dfrn:name/text()', $mail)->item(0)->nodeValue;
|
$msg["from-name"] = $xpath->query('dfrn:sender/dfrn:name/text()', $mail)->item(0)->nodeValue;
|
||||||
$msg["from-url"] = $xpath->query('dfrn:sender/dfrn:uri/text()', $mail)->item(0)->nodeValue;
|
$msg["from-url"] = $xpath->query('dfrn:sender/dfrn:uri/text()', $mail)->item(0)->nodeValue;
|
||||||
$msg["from-photo"] = $xpath->query('dfrn:sender/dfrn:avatar/text()', $mail)->item(0)->nodeValue;
|
$msg["from-photo"] = $xpath->query('dfrn:sender/dfrn:avatar/text()', $mail)->item(0)->nodeValue;
|
||||||
$msg["contact-id"] = $importer["id"];
|
$msg["contact-id"] = $importer["id"];
|
||||||
$msg["uri"] = $xpath->query('dfrn:id/text()', $mail)->item(0)->nodeValue;
|
$msg["uri"] = $xpath->query('dfrn:id/text()', $mail)->item(0)->nodeValue;
|
||||||
$msg["parent-uri"] = $xpath->query('dfrn:in-reply-to/text()', $mail)->item(0)->nodeValue;
|
$msg["parent-uri"] = $xpath->query('dfrn:in-reply-to/text()', $mail)->item(0)->nodeValue;
|
||||||
$msg["created"] = $xpath->query('dfrn:sentdate/text()', $mail)->item(0)->nodeValue;
|
$msg["created"] = $xpath->query('dfrn:sentdate/text()', $mail)->item(0)->nodeValue;
|
||||||
$msg["title"] = $xpath->query('dfrn:subject/text()', $mail)->item(0)->nodeValue;
|
$msg["title"] = $xpath->query('dfrn:subject/text()', $mail)->item(0)->nodeValue;
|
||||||
$msg["body"] = $xpath->query('dfrn:content/text()', $mail)->item(0)->nodeValue;
|
$msg["body"] = $xpath->query('dfrn:content/text()', $mail)->item(0)->nodeValue;
|
||||||
$msg["seen"] = 0;
|
$msg["seen"] = 0;
|
||||||
$msg["replied"] = 0;
|
$msg["replied"] = 0;
|
||||||
|
|
||||||
dbesc_array($msg);
|
dbesc_array($msg);
|
||||||
|
|
||||||
//$r = dbq("INSERT INTO `mail` (`" . implode("`, `", array_keys($msg))
|
$r = dbq("INSERT INTO `mail` (`".implode("`, `", array_keys($msg))."`) VALUES ('".implode("', '", array_values($msg))."')");
|
||||||
// . "`) VALUES ('" . implode("', '", array_values($msg)) . "')" );
|
|
||||||
|
|
||||||
print_r($msg);
|
// send notifications.
|
||||||
|
|
||||||
// send notifications.
|
$notif_params = array(
|
||||||
|
'type' => NOTIFY_MAIL,
|
||||||
|
'notify_flags' => $importer['notify-flags'],
|
||||||
|
'language' => $importer['language'],
|
||||||
|
'to_name' => $importer['username'],
|
||||||
|
'to_email' => $importer['email'],
|
||||||
|
'uid' => $importer['importer_uid'],
|
||||||
|
'item' => $msg,
|
||||||
|
'source_name' => $msg['from-name'],
|
||||||
|
'source_link' => $importer['url'],
|
||||||
|
'source_photo' => $importer['thumb'],
|
||||||
|
'verb' => ACTIVITY_POST,
|
||||||
|
'otype' => 'mail'
|
||||||
|
);
|
||||||
|
|
||||||
require_once('include/enotify.php');
|
notification($notif_params);
|
||||||
|
}
|
||||||
|
|
||||||
$notif_params = array(
|
private function process_suggestion($xpath, $suggestion, $importer) {
|
||||||
'type' => NOTIFY_MAIL,
|
|
||||||
'notify_flags' => $importer['notify-flags'],
|
|
||||||
'language' => $importer['language'],
|
|
||||||
'to_name' => $importer['username'],
|
|
||||||
'to_email' => $importer['email'],
|
|
||||||
'uid' => $importer['importer_uid'],
|
|
||||||
'item' => $msg,
|
|
||||||
'source_name' => $msg['from-name'],
|
|
||||||
'source_link' => $importer['url'],
|
|
||||||
'source_photo' => $importer['thumb'],
|
|
||||||
'verb' => ACTIVITY_POST,
|
|
||||||
'otype' => 'mail'
|
|
||||||
);
|
|
||||||
|
|
||||||
// notification($notif_params);
|
$suggest = array();
|
||||||
print_r($notif_params);
|
$suggest["uid"] = $importer["importer_uid"];
|
||||||
|
$suggest["cid"] = $importer["id"];
|
||||||
|
$suggest["url"] = $xpath->query('dfrn:url/text()', $suggestion)->item(0)->nodeValue;
|
||||||
|
$suggest["name"] = $xpath->query('dfrn:name/text()', $suggestion)->item(0)->nodeValue;
|
||||||
|
$suggest["photo"] = $xpath->query('dfrn:photo/text()', $suggestion)->item(0)->nodeValue;
|
||||||
|
$suggest["request"] = $xpath->query('dfrn:request/text()', $suggestion)->item(0)->nodeValue;
|
||||||
|
$suggest["note"] = $xpath->query('dfrn:note/text()', $suggestion)->item(0)->nodeValue;
|
||||||
|
|
||||||
|
// Does our member already have a friend matching this description?
|
||||||
|
|
||||||
|
$r = q("SELECT `id` FROM `contact` WHERE `name` = '%s' AND `nurl` = '%s' AND `uid` = %d LIMIT 1",
|
||||||
|
dbesc($suggest["name"]),
|
||||||
|
dbesc(normalise_link($suggest["url"])),
|
||||||
|
intval($suggest["uid"])
|
||||||
|
);
|
||||||
|
if(count($r))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// Do we already have an fcontact record for this person?
|
||||||
|
|
||||||
|
$fid = 0;
|
||||||
|
$r = q("SELECT `id` FROM `fcontact` WHERE `url` = '%s' AND `name` = '%s' AND `request` = '%s' LIMIT 1",
|
||||||
|
dbesc($suggest["url"]),
|
||||||
|
dbesc($suggest["name"]),
|
||||||
|
dbesc($suggest["request"])
|
||||||
|
);
|
||||||
|
if(count($r)) {
|
||||||
|
$fid = $r[0]["id"];
|
||||||
|
|
||||||
|
// OK, we do. Do we already have an introduction for this person ?
|
||||||
|
$r = q("SELECT `id` FROM `intro` WHERE `uid` = %d AND `fid` = %d LIMIT 1",
|
||||||
|
intval($suggest["uid"]),
|
||||||
|
intval($fid)
|
||||||
|
);
|
||||||
|
if(count($r))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(!$fid)
|
||||||
|
$r = q("INSERT INTO `fcontact` (`name`,`url`,`photo`,`request`) VALUES ('%s', '%s', '%s', '%s')",
|
||||||
|
dbesc($suggest["name"]),
|
||||||
|
dbesc($suggest["url"]),
|
||||||
|
dbesc($suggest["photo"]),
|
||||||
|
dbesc($suggest["request"])
|
||||||
|
);
|
||||||
|
$r = q("SELECT `id` FROM `fcontact` WHERE `url` = '%s' AND `name` = '%s' AND `request` = '%s' LIMIT 1",
|
||||||
|
dbesc($suggest["url"]),
|
||||||
|
dbesc($suggest["name"]),
|
||||||
|
dbesc($suggest["request"])
|
||||||
|
);
|
||||||
|
if(count($r))
|
||||||
|
$fid = $r[0]["id"];
|
||||||
|
else
|
||||||
|
// database record did not get created. Quietly give up.
|
||||||
|
return false;
|
||||||
|
|
||||||
|
|
||||||
|
$hash = random_string();
|
||||||
|
|
||||||
|
$r = q("INSERT INTO `intro` (`uid`, `fid`, `contact-id`, `note`, `hash`, `datetime`, `blocked`)
|
||||||
|
VALUES(%d, %d, %d, '%s', '%s', '%s', %d)",
|
||||||
|
intval($suggest["uid"]),
|
||||||
|
intval($fid),
|
||||||
|
intval($suggest["cid"]),
|
||||||
|
dbesc($suggest["body"]),
|
||||||
|
dbesc($hash),
|
||||||
|
dbesc(datetime_convert()),
|
||||||
|
intval(0)
|
||||||
|
);
|
||||||
|
|
||||||
|
notification(array(
|
||||||
|
'type' => NOTIFY_SUGGEST,
|
||||||
|
'notify_flags' => $importer["notify-flags"],
|
||||||
|
'language' => $importer["language"],
|
||||||
|
'to_name' => $importer["username"],
|
||||||
|
'to_email' => $importer["email"],
|
||||||
|
'uid' => $importer["importer_uid"],
|
||||||
|
'item' => $suggest,
|
||||||
|
'link' => App::get_baseurl()."/notifications/intros",
|
||||||
|
'source_name' => $importer["name"],
|
||||||
|
'source_link' => $importer["url"],
|
||||||
|
'source_photo' => $importer["photo"],
|
||||||
|
'verb' => ACTIVITY_REQ_FRIEND,
|
||||||
|
'otype' => "intro"
|
||||||
|
));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function process_suggestion($header, $xpath, $suggestion, $importer, $contact) {
|
private function process_relocation($xpath, $relocation, $importer) {
|
||||||
}
|
|
||||||
|
|
||||||
private function process_relocation($header, $xpath, $relocation, $importer, $contact) {
|
$relocate = array();
|
||||||
|
$relocate["uid"] = $importer["importer_uid"];
|
||||||
|
$relocate["cid"] = $importer["id"];
|
||||||
|
$relocate["url"] = $xpath->query('dfrn:url/text()', $relocation)->item(0)->nodeValue;
|
||||||
|
$relocate["name"] = $xpath->query('dfrn:name/text()', $relocation)->item(0)->nodeValue;
|
||||||
|
$relocate["photo"] = $xpath->query('dfrn:photo/text()', $relocation)->item(0)->nodeValue;
|
||||||
|
$relocate["thumb"] = $xpath->query('dfrn:thumb/text()', $relocation)->item(0)->nodeValue;
|
||||||
|
$relocate["micro"] = $xpath->query('dfrn:micro/text()', $relocation)->item(0)->nodeValue;
|
||||||
|
$relocate["request"] = $xpath->query('dfrn:request/text()', $relocation)->item(0)->nodeValue;
|
||||||
|
$relocate["confirm"] = $xpath->query('dfrn:confirm/text()', $relocation)->item(0)->nodeValue;
|
||||||
|
$relocate["notify"] = $xpath->query('dfrn:notify/text()', $relocation)->item(0)->nodeValue;
|
||||||
|
$relocate["poll"] = $xpath->query('dfrn:poll/text()', $relocation)->item(0)->nodeValue;
|
||||||
|
$relocate["sitepubkey"] = $xpath->query('dfrn:sitepubkey/text()', $relocation)->item(0)->nodeValue;
|
||||||
|
|
||||||
|
// update contact
|
||||||
|
$r = q("SELECT `photo`, `url` FROM `contact` WHERE `id` = %d AND `uid` = %d;",
|
||||||
|
intval($importer["id"]),
|
||||||
|
intval($importer["importer_uid"]));
|
||||||
|
if (!$r)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
$old = $r[0];
|
||||||
|
|
||||||
|
$x = q("UPDATE `contact` SET
|
||||||
|
`name` = '%s',
|
||||||
|
`photo` = '%s',
|
||||||
|
`thumb` = '%s',
|
||||||
|
`micro` = '%s',
|
||||||
|
`url` = '%s',
|
||||||
|
`nurl` = '%s',
|
||||||
|
`request` = '%s',
|
||||||
|
`confirm` = '%s',
|
||||||
|
`notify` = '%s',
|
||||||
|
`poll` = '%s',
|
||||||
|
`site-pubkey` = '%s'
|
||||||
|
WHERE `id` = %d AND `uid` = %d;",
|
||||||
|
dbesc($relocate["name"]),
|
||||||
|
dbesc($relocate["photo"]),
|
||||||
|
dbesc($relocate["thumb"]),
|
||||||
|
dbesc($relocate["micro"]),
|
||||||
|
dbesc($relocate["url"]),
|
||||||
|
dbesc(normalise_link($relocate["url"])),
|
||||||
|
dbesc($relocate["request"]),
|
||||||
|
dbesc($relocate["confirm"]),
|
||||||
|
dbesc($relocate["notify"]),
|
||||||
|
dbesc($relocate["poll"]),
|
||||||
|
dbesc($relocate["sitepubkey"]),
|
||||||
|
intval($importer["id"]),
|
||||||
|
intval($importer["importer_uid"]));
|
||||||
|
|
||||||
|
if ($x === false)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// update items
|
||||||
|
$fields = array(
|
||||||
|
'owner-link' => array($old["url"], $relocate["url"]),
|
||||||
|
'author-link' => array($old["url"], $relocate["url"]),
|
||||||
|
'owner-avatar' => array($old["photo"], $relocate["photo"]),
|
||||||
|
'author-avatar' => array($old["photo"], $relocate["photo"]),
|
||||||
|
);
|
||||||
|
foreach ($fields as $n=>$f){
|
||||||
|
$x = q("UPDATE `item` SET `%s` = '%s' WHERE `%s` = '%s' AND `uid` = %d",
|
||||||
|
$n, dbesc($f[1]),
|
||||||
|
$n, dbesc($f[0]),
|
||||||
|
intval($importer["importer_uid"]));
|
||||||
|
if ($x === false)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @TODO
|
||||||
|
/// merge with current record, current contents have priority
|
||||||
|
/// update record, set url-updated
|
||||||
|
/// update profile photos
|
||||||
|
/// schedule a scan?
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function process_entry($header, $xpath, $entry, $importer, $contact) {
|
private function process_entry($header, $xpath, $entry, $importer, $contact) {
|
||||||
|
@ -511,7 +669,11 @@ print_r($notif_params);
|
||||||
return $item_id;
|
return $item_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
function import($xml,$importer,&$contact, &$hub) {
|
private function process_deletion($header, $xpath, $entry, $importer, $contact) {
|
||||||
|
die("blubb");
|
||||||
|
}
|
||||||
|
|
||||||
|
function import($xml,$importer) {
|
||||||
|
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
|
@ -524,16 +686,19 @@ print_r($notif_params);
|
||||||
@$doc->loadXML($xml);
|
@$doc->loadXML($xml);
|
||||||
|
|
||||||
$xpath = new DomXPath($doc);
|
$xpath = new DomXPath($doc);
|
||||||
$xpath->registerNamespace('atom', "http://www.w3.org/2005/Atom");
|
$xpath->registerNamespace('atom', NAMESPACE_ATOM1);
|
||||||
$xpath->registerNamespace('thr', "http://purl.org/syndication/thread/1.0");
|
$xpath->registerNamespace('thr', NAMESPACE_THREAD);
|
||||||
$xpath->registerNamespace('at', "http://purl.org/atompub/tombstones/1.0");
|
$xpath->registerNamespace('at', NAMESPACE_TOMB);
|
||||||
$xpath->registerNamespace('media', "http://purl.org/syndication/atommedia");
|
$xpath->registerNamespace('media', NAMESPACE_MEDIA);
|
||||||
$xpath->registerNamespace('dfrn', "http://purl.org/macgirvin/dfrn/1.0");
|
$xpath->registerNamespace('dfrn', NAMESPACE_DFRN);
|
||||||
$xpath->registerNamespace('activity', "http://activitystrea.ms/spec/1.0/");
|
$xpath->registerNamespace('activity', NAMESPACE_ACTIVITY);
|
||||||
$xpath->registerNamespace('georss', "http://www.georss.org/georss");
|
$xpath->registerNamespace('georss', NAMESPACE_GEORSS);
|
||||||
$xpath->registerNamespace('poco', "http://portablecontacts.net/spec/1.0");
|
$xpath->registerNamespace('poco', NAMESPACE_POCO);
|
||||||
$xpath->registerNamespace('ostatus', "http://ostatus.org/schema/1.0");
|
$xpath->registerNamespace('ostatus', NAMESPACE_OSTATUS);
|
||||||
$xpath->registerNamespace('statusnet', "http://status.net/schema/api/1/");
|
$xpath->registerNamespace('statusnet', NAMESPACE_STATUSNET);
|
||||||
|
|
||||||
|
$r = q("SELECT * FROM `contact` WHERE `id` = %d AND `self`", intval($importer["uid"]));
|
||||||
|
$contact = $r[0];
|
||||||
|
|
||||||
$header = array();
|
$header = array();
|
||||||
$header["uid"] = $importer["uid"];
|
$header["uid"] = $importer["uid"];
|
||||||
|
@ -559,15 +724,15 @@ print_r($notif_params);
|
||||||
|
|
||||||
$mails = $xpath->query('/atom:feed/dfrn:mail');
|
$mails = $xpath->query('/atom:feed/dfrn:mail');
|
||||||
foreach ($mails AS $mail)
|
foreach ($mails AS $mail)
|
||||||
self::process_mail($header, $xpath, $mail, $importer, $contact);
|
self::process_mail($xpath, $mail, $importer);
|
||||||
|
|
||||||
$suggestions = $xpath->query('/atom:feed/dfrn:suggest');
|
$suggestions = $xpath->query('/atom:feed/dfrn:suggest');
|
||||||
foreach ($suggestions AS $suggestion)
|
foreach ($suggestions AS $suggestion)
|
||||||
self::process_suggestion($header, $xpath, $suggestion, $importer, $contact);
|
self::process_suggestion($xpath, $suggestion, $importer);
|
||||||
|
|
||||||
$relocations = $xpath->query('/atom:feed/dfrn:relocate');
|
$relocations = $xpath->query('/atom:feed/dfrn:relocate');
|
||||||
foreach ($relocations AS $relocation)
|
foreach ($relocations AS $relocation)
|
||||||
self::process_relocation($header, $xpath, $relocation, $importer, $contact);
|
self::process_relocation($xpath, $relocation, $importer);
|
||||||
|
|
||||||
$entries = $xpath->query('/atom:feed/atom:entry');
|
$entries = $xpath->query('/atom:feed/atom:entry');
|
||||||
foreach ($entries AS $entry)
|
foreach ($entries AS $entry)
|
||||||
|
|
|
@ -17,15 +17,6 @@ define('OSTATUS_DEFAULT_POLL_INTERVAL', 30); // given in minutes
|
||||||
define('OSTATUS_DEFAULT_POLL_TIMEFRAME', 1440); // given in minutes
|
define('OSTATUS_DEFAULT_POLL_TIMEFRAME', 1440); // given in minutes
|
||||||
define('OSTATUS_DEFAULT_POLL_TIMEFRAME_MENTIONS', 14400); // given in minutes
|
define('OSTATUS_DEFAULT_POLL_TIMEFRAME_MENTIONS', 14400); // given in minutes
|
||||||
|
|
||||||
define("NS_ATOM", "http://www.w3.org/2005/Atom");
|
|
||||||
define("NS_THR", "http://purl.org/syndication/thread/1.0");
|
|
||||||
define("NS_GEORSS", "http://www.georss.org/georss");
|
|
||||||
define("NS_ACTIVITY", "http://activitystrea.ms/spec/1.0/");
|
|
||||||
define("NS_MEDIA", "http://purl.org/syndication/atommedia");
|
|
||||||
define("NS_POCO", "http://portablecontacts.net/spec/1.0");
|
|
||||||
define("NS_OSTATUS", "http://ostatus.org/schema/1.0");
|
|
||||||
define("NS_STATUSNET", "http://status.net/schema/api/1/");
|
|
||||||
|
|
||||||
function ostatus_check_follow_friends() {
|
function ostatus_check_follow_friends() {
|
||||||
$r = q("SELECT `uid`,`v` FROM `pconfig` WHERE `cat`='system' AND `k`='ostatus_legacy_contact' AND `v` != ''");
|
$r = q("SELECT `uid`,`v` FROM `pconfig` WHERE `cat`='system' AND `k`='ostatus_legacy_contact' AND `v` != ''");
|
||||||
|
|
||||||
|
@ -193,14 +184,14 @@ function ostatus_salmon_author($xml, $importer) {
|
||||||
@$doc->loadXML($xml);
|
@$doc->loadXML($xml);
|
||||||
|
|
||||||
$xpath = new DomXPath($doc);
|
$xpath = new DomXPath($doc);
|
||||||
$xpath->registerNamespace('atom', "http://www.w3.org/2005/Atom");
|
$xpath->registerNamespace('atom', NAMESPACE_ATOM1);
|
||||||
$xpath->registerNamespace('thr', "http://purl.org/syndication/thread/1.0");
|
$xpath->registerNamespace('thr', NAMESPACE_THREAD);
|
||||||
$xpath->registerNamespace('georss', "http://www.georss.org/georss");
|
$xpath->registerNamespace('georss', NAMESPACE_GEORSS);
|
||||||
$xpath->registerNamespace('activity', "http://activitystrea.ms/spec/1.0/");
|
$xpath->registerNamespace('activity', NAMESPACE_ACTIVITY);
|
||||||
$xpath->registerNamespace('media', "http://purl.org/syndication/atommedia");
|
$xpath->registerNamespace('media', NAMESPACE_MEDIA);
|
||||||
$xpath->registerNamespace('poco', "http://portablecontacts.net/spec/1.0");
|
$xpath->registerNamespace('poco', NAMESPACE_POCO);
|
||||||
$xpath->registerNamespace('ostatus', "http://ostatus.org/schema/1.0");
|
$xpath->registerNamespace('ostatus', NAMESPACE_OSTATUS);
|
||||||
$xpath->registerNamespace('statusnet', "http://status.net/schema/api/1/");
|
$xpath->registerNamespace('statusnet', NAMESPACE_STATUSNET);
|
||||||
|
|
||||||
$entries = $xpath->query('/atom:entry');
|
$entries = $xpath->query('/atom:entry');
|
||||||
|
|
||||||
|
@ -224,14 +215,14 @@ function ostatus_import($xml,$importer,&$contact, &$hub) {
|
||||||
@$doc->loadXML($xml);
|
@$doc->loadXML($xml);
|
||||||
|
|
||||||
$xpath = new DomXPath($doc);
|
$xpath = new DomXPath($doc);
|
||||||
$xpath->registerNamespace('atom', "http://www.w3.org/2005/Atom");
|
$xpath->registerNamespace('atom', NAMESPACE_ATOM1);
|
||||||
$xpath->registerNamespace('thr', "http://purl.org/syndication/thread/1.0");
|
$xpath->registerNamespace('thr', NAMESPACE_THREAD);
|
||||||
$xpath->registerNamespace('georss', "http://www.georss.org/georss");
|
$xpath->registerNamespace('georss', NAMESPACE_GEORSS);
|
||||||
$xpath->registerNamespace('activity', "http://activitystrea.ms/spec/1.0/");
|
$xpath->registerNamespace('activity', NAMESPACE_ACTIVITY);
|
||||||
$xpath->registerNamespace('media', "http://purl.org/syndication/atommedia");
|
$xpath->registerNamespace('media', NAMESPACE_MEDIA);
|
||||||
$xpath->registerNamespace('poco', "http://portablecontacts.net/spec/1.0");
|
$xpath->registerNamespace('poco', NAMESPACE_POCO);
|
||||||
$xpath->registerNamespace('ostatus', "http://ostatus.org/schema/1.0");
|
$xpath->registerNamespace('ostatus', NAMESPACE_OSTATUS);
|
||||||
$xpath->registerNamespace('statusnet', "http://status.net/schema/api/1/");
|
$xpath->registerNamespace('statusnet', NAMESPACE_STATUSNET);
|
||||||
|
|
||||||
$gub = "";
|
$gub = "";
|
||||||
$hub_attributes = $xpath->query("/atom:feed/atom:link[@rel='hub']")->item(0)->attributes;
|
$hub_attributes = $xpath->query("/atom:feed/atom:link[@rel='hub']")->item(0)->attributes;
|
||||||
|
@ -1120,16 +1111,16 @@ function ostatus_format_picture_post($body) {
|
||||||
function ostatus_add_header($doc, $owner) {
|
function ostatus_add_header($doc, $owner) {
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
$root = $doc->createElementNS(NS_ATOM, 'feed');
|
$root = $doc->createElementNS(NAMESPACE_ATOM1, 'feed');
|
||||||
$doc->appendChild($root);
|
$doc->appendChild($root);
|
||||||
|
|
||||||
$root->setAttribute("xmlns:thr", NS_THR);
|
$root->setAttribute("xmlns:thr", NAMESPACE_THREAD);
|
||||||
$root->setAttribute("xmlns:georss", NS_GEORSS);
|
$root->setAttribute("xmlns:georss", NAMESPACE_GEORSS);
|
||||||
$root->setAttribute("xmlns:activity", NS_ACTIVITY);
|
$root->setAttribute("xmlns:activity", NAMESPACE_ACTIVITY);
|
||||||
$root->setAttribute("xmlns:media", NS_MEDIA);
|
$root->setAttribute("xmlns:media", NAMESPACE_MEDIA);
|
||||||
$root->setAttribute("xmlns:poco", NS_POCO);
|
$root->setAttribute("xmlns:poco", NAMESPACE_POCO);
|
||||||
$root->setAttribute("xmlns:ostatus", NS_OSTATUS);
|
$root->setAttribute("xmlns:ostatus", NAMESPACE_OSTATUS);
|
||||||
$root->setAttribute("xmlns:statusnet", NS_STATUSNET);
|
$root->setAttribute("xmlns:statusnet", NAMESPACE_STATUSNET);
|
||||||
|
|
||||||
$attributes = array("uri" => "https://friendi.ca", "version" => FRIENDICA_VERSION."-".DB_UPDATE_VERSION);
|
$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);
|
||||||
|
@ -1343,15 +1334,15 @@ function ostatus_entry($doc, $item, $owner, $toplevel = false, $repeat = false)
|
||||||
$entry = $doc->createElement("activity:object");
|
$entry = $doc->createElement("activity:object");
|
||||||
$title = sprintf("New note by %s", $owner["nick"]);
|
$title = sprintf("New note by %s", $owner["nick"]);
|
||||||
} else {
|
} else {
|
||||||
$entry = $doc->createElementNS(NS_ATOM, "entry");
|
$entry = $doc->createElementNS(NAMESPACE_ATOM1, "entry");
|
||||||
|
|
||||||
$entry->setAttribute("xmlns:thr", NS_THR);
|
$entry->setAttribute("xmlns:thr", NAMESPACE_THREAD);
|
||||||
$entry->setAttribute("xmlns:georss", NS_GEORSS);
|
$entry->setAttribute("xmlns:georss", NAMESPACE_GEORSS);
|
||||||
$entry->setAttribute("xmlns:activity", NS_ACTIVITY);
|
$entry->setAttribute("xmlns:activity", NAMESPACE_ACTIVITY);
|
||||||
$entry->setAttribute("xmlns:media", NS_MEDIA);
|
$entry->setAttribute("xmlns:media", NAMESPACE_MEDIA);
|
||||||
$entry->setAttribute("xmlns:poco", NS_POCO);
|
$entry->setAttribute("xmlns:poco", NAMESPACE_POCO);
|
||||||
$entry->setAttribute("xmlns:ostatus", NS_OSTATUS);
|
$entry->setAttribute("xmlns:ostatus", NAMESPACE_OSTATUS);
|
||||||
$entry->setAttribute("xmlns:statusnet", NS_STATUSNET);
|
$entry->setAttribute("xmlns:statusnet", NAMESPACE_STATUSNET);
|
||||||
|
|
||||||
$author = ostatus_add_author($doc, $owner);
|
$author = ostatus_add_author($doc, $owner);
|
||||||
$entry->appendChild($author);
|
$entry->appendChild($author);
|
||||||
|
|
Loading…
Reference in a new issue