forked from GNUsocial/gnu-social
Add statusnet: prefix for API to JSON and XML output
I added the statusnet: prefix to the xml output. This prefix should be declared on the root element of all relevant XML output. I also added two StatusNet-specific fields: * statusnet:html - rendered HTML. Clients shouldn't have to guess at the correct HTML rendering for notices, especially since some of the links depend on context. * statusnet:profile_url - profile URL for a user. You can't count on a user being a local user in a distributed microblogging world. So, this shows the explicit profile_url.
This commit is contained in:
parent
fd9d520aeb
commit
beaecb18d5
@ -232,7 +232,8 @@ class ApiDirectMessageAction extends ApiAuthAction
|
|||||||
function showXmlDirectMessages()
|
function showXmlDirectMessages()
|
||||||
{
|
{
|
||||||
$this->initDocument('xml');
|
$this->initDocument('xml');
|
||||||
$this->elementStart('direct-messages', array('type' => 'array'));
|
$this->elementStart('direct-messages', array('type' => 'array',
|
||||||
|
'xmlns:statusnet' => 'http://status.net/schema/api/1/'));
|
||||||
|
|
||||||
foreach ($this->messages as $m) {
|
foreach ($this->messages as $m) {
|
||||||
$dm_array = $this->directMessageArray($m);
|
$dm_array = $this->directMessageArray($m);
|
||||||
|
@ -113,7 +113,7 @@ class ApiUserShowAction extends ApiPrivateAuthAction
|
|||||||
|
|
||||||
if ($this->format == 'xml') {
|
if ($this->format == 'xml') {
|
||||||
$this->initDocument('xml');
|
$this->initDocument('xml');
|
||||||
$this->showTwitterXmlUser($twitter_user);
|
$this->showTwitterXmlUser($twitter_user, 'user', true);
|
||||||
$this->endDocument('xml');
|
$this->endDocument('xml');
|
||||||
} elseif ($this->format == 'json') {
|
} elseif ($this->format == 'json') {
|
||||||
$this->initDocument('json');
|
$this->initDocument('json');
|
||||||
|
@ -223,6 +223,10 @@ class ApiAction extends Action
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// StatusNet-specific
|
||||||
|
|
||||||
|
$twitter_user['statusnet:profile_url'] = $profile->profileurl;
|
||||||
|
|
||||||
return $twitter_user;
|
return $twitter_user;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -308,6 +312,10 @@ class ApiAction extends Action
|
|||||||
$twitter_status['user'] = $twitter_user;
|
$twitter_status['user'] = $twitter_user;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// StatusNet-specific
|
||||||
|
|
||||||
|
$twitter_status['statusnet:html'] = $notice->rendered;
|
||||||
|
|
||||||
return $twitter_status;
|
return $twitter_status;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -475,9 +483,13 @@ class ApiAction extends Action
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function showTwitterXmlStatus($twitter_status, $tag='status')
|
function showTwitterXmlStatus($twitter_status, $tag='status', $namespaces=false)
|
||||||
{
|
{
|
||||||
$this->elementStart($tag);
|
$attrs = array();
|
||||||
|
if ($namespaces) {
|
||||||
|
$attrs['xmlns:statusnet'] = 'http://status.net/schema/api/1/';
|
||||||
|
}
|
||||||
|
$this->elementStart($tag, $attrs);
|
||||||
foreach($twitter_status as $element => $value) {
|
foreach($twitter_status as $element => $value) {
|
||||||
switch ($element) {
|
switch ($element) {
|
||||||
case 'user':
|
case 'user':
|
||||||
@ -511,9 +523,13 @@ class ApiAction extends Action
|
|||||||
$this->elementEnd('group');
|
$this->elementEnd('group');
|
||||||
}
|
}
|
||||||
|
|
||||||
function showTwitterXmlUser($twitter_user, $role='user')
|
function showTwitterXmlUser($twitter_user, $role='user', $namespaces=false)
|
||||||
{
|
{
|
||||||
$this->elementStart($role);
|
$attrs = array();
|
||||||
|
if ($namespaces) {
|
||||||
|
$attrs['xmlns:statusnet'] = 'http://status.net/schema/api/1/';
|
||||||
|
}
|
||||||
|
$this->elementStart($role, $attrs);
|
||||||
foreach($twitter_user as $element => $value) {
|
foreach($twitter_user as $element => $value) {
|
||||||
if ($element == 'status') {
|
if ($element == 'status') {
|
||||||
$this->showTwitterXmlStatus($twitter_user['status']);
|
$this->showTwitterXmlStatus($twitter_user['status']);
|
||||||
@ -595,7 +611,7 @@ class ApiAction extends Action
|
|||||||
{
|
{
|
||||||
$this->initDocument('xml');
|
$this->initDocument('xml');
|
||||||
$twitter_status = $this->twitterStatusArray($notice);
|
$twitter_status = $this->twitterStatusArray($notice);
|
||||||
$this->showTwitterXmlStatus($twitter_status);
|
$this->showTwitterXmlStatus($twitter_status, 'status', true);
|
||||||
$this->endDocument('xml');
|
$this->endDocument('xml');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -611,7 +627,8 @@ class ApiAction extends Action
|
|||||||
{
|
{
|
||||||
|
|
||||||
$this->initDocument('xml');
|
$this->initDocument('xml');
|
||||||
$this->elementStart('statuses', array('type' => 'array'));
|
$this->elementStart('statuses', array('type' => 'array',
|
||||||
|
'xmlns:statusnet' => 'http://status.net/schema/api/1/'));
|
||||||
|
|
||||||
if (is_array($notice)) {
|
if (is_array($notice)) {
|
||||||
foreach ($notice as $n) {
|
foreach ($notice as $n) {
|
||||||
@ -778,9 +795,13 @@ class ApiAction extends Action
|
|||||||
$this->elementEnd('entry');
|
$this->elementEnd('entry');
|
||||||
}
|
}
|
||||||
|
|
||||||
function showXmlDirectMessage($dm)
|
function showXmlDirectMessage($dm, $namespaces=false)
|
||||||
{
|
{
|
||||||
$this->elementStart('direct_message');
|
$attrs = array();
|
||||||
|
if ($namespaces) {
|
||||||
|
$attrs['xmlns:statusnet'] = 'http://status.net/schema/api/1/';
|
||||||
|
}
|
||||||
|
$this->elementStart('direct_message', $attrs);
|
||||||
foreach($dm as $element => $value) {
|
foreach($dm as $element => $value) {
|
||||||
switch ($element) {
|
switch ($element) {
|
||||||
case 'sender':
|
case 'sender':
|
||||||
@ -857,7 +878,7 @@ class ApiAction extends Action
|
|||||||
{
|
{
|
||||||
$this->initDocument('xml');
|
$this->initDocument('xml');
|
||||||
$dmsg = $this->directMessageArray($message);
|
$dmsg = $this->directMessageArray($message);
|
||||||
$this->showXmlDirectMessage($dmsg);
|
$this->showXmlDirectMessage($dmsg, true);
|
||||||
$this->endDocument('xml');
|
$this->endDocument('xml');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -974,7 +995,8 @@ class ApiAction extends Action
|
|||||||
{
|
{
|
||||||
|
|
||||||
$this->initDocument('xml');
|
$this->initDocument('xml');
|
||||||
$this->elementStart('users', array('type' => 'array'));
|
$this->elementStart('users', array('type' => 'array',
|
||||||
|
'xmlns:statusnet' => 'http://status.net/schema/api/1/'));
|
||||||
|
|
||||||
if (is_array($user)) {
|
if (is_array($user)) {
|
||||||
foreach ($user as $u) {
|
foreach ($user as $u) {
|
||||||
|
Loading…
Reference in New Issue
Block a user