summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZach Copley <zach@status.net>2010-06-22 16:28:06 -0700
committerZach Copley <zach@status.net>2010-06-22 16:28:06 -0700
commit1eec7f779fc85b530907ea31deceadb2a30d7614 (patch)
tree16750d5fa88a8dcc160a15a9fc92375563a488cd
parent1852eae36f9ed9a57d37f2048dfbf2257c7eccb4 (diff)
- Add profile_info tag to Atom author
- Normalize xmlns:statusnet links in the API
-rw-r--r--classes/Notice.php4
-rw-r--r--classes/Profile.php10
-rw-r--r--lib/apiaction.php2
-rw-r--r--lib/atomnoticefeed.php2
4 files changed, 14 insertions, 4 deletions
diff --git a/classes/Notice.php b/classes/Notice.php
index f8eda5777..c752e35a7 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -1190,7 +1190,7 @@ class Notice extends Memcached_DataObject
'xmlns:media' => 'http://purl.org/syndication/atommedia',
'xmlns:poco' => 'http://portablecontacts.net/spec/1.0',
'xmlns:ostatus' => 'http://ostatus.org/schema/1.0',
- 'xmlns:statusnet' => 'http://status.net/ont/');
+ 'xmlns:statusnet' => 'http://status.net/schema/api/1/');
} else {
$attrs = array();
}
@@ -1225,7 +1225,7 @@ class Notice extends Memcached_DataObject
$xs->element('title', null, common_xml_safe_str($this->content));
if ($author) {
- $xs->raw($profile->asAtomAuthor());
+ $xs->raw($profile->asAtomAuthor($cur));
$xs->raw($profile->asActivityActor());
}
diff --git a/classes/Profile.php b/classes/Profile.php
index 54f557ea7..a303469e9 100644
--- a/classes/Profile.php
+++ b/classes/Profile.php
@@ -849,15 +849,23 @@ class Profile extends Memcached_DataObject
*
* Assumes that Atom has been previously set up as the base namespace.
*
+ * @param Profile $cur the current authenticated user
+ *
* @return string
*/
- function asAtomAuthor()
+ function asAtomAuthor($cur = null)
{
$xs = new XMLStringer(true);
$xs->elementStart('author');
$xs->element('name', null, $this->nickname);
$xs->element('uri', null, $this->getUri());
+ if ($cur != null) {
+ $attrs = Array();
+ $attrs['following'] = $cur->isSubscribed($this) ? 'true' : 'false';
+ $attrs['blocking'] = $cur->hasBlocked($this) ? 'true' : 'false';
+ $xs->element('statusnet:profile_info', $attrs, null);
+ }
$xs->elementEnd('author');
return $xs->getString();
diff --git a/lib/apiaction.php b/lib/apiaction.php
index 7cc473d51..226481778 100644
--- a/lib/apiaction.php
+++ b/lib/apiaction.php
@@ -208,11 +208,13 @@ class ApiAction extends Action
// Is the requesting user following this user?
$twitter_user['following'] = false;
+ $twitter_user['statusnet:blocking'] = false;
$twitter_user['notifications'] = false;
if (isset($this->auth_user)) {
$twitter_user['following'] = $this->auth_user->isSubscribed($profile);
+ $twitter_user['statusnet:blocking'] = $this->auth_user->hasBlocked($profile);
// Notifications on?
$sub = Subscription::pkeyGet(array('subscriber' =>
diff --git a/lib/atomnoticefeed.php b/lib/atomnoticefeed.php
index ef44de4b6..6ed803ce4 100644
--- a/lib/atomnoticefeed.php
+++ b/lib/atomnoticefeed.php
@@ -95,7 +95,7 @@ class AtomNoticeFeed extends Atom10Feed
$this->addNamespace(
'statusnet',
- 'http://status.net/ont/'
+ 'http://status.net/schema/api/1/'
);
}