forked from GNUsocial/gnu-social
DirectMessage API functions moved to plugin
This commit is contained in:
parent
f1d7555ccc
commit
d493fd0772
@ -967,104 +967,6 @@ class ApiAction extends Action
|
|||||||
$this->elementEnd('entry');
|
$this->elementEnd('entry');
|
||||||
}
|
}
|
||||||
|
|
||||||
function showXmlDirectMessage($dm, $namespaces=false)
|
|
||||||
{
|
|
||||||
$attrs = array();
|
|
||||||
if ($namespaces) {
|
|
||||||
$attrs['xmlns:statusnet'] = 'http://status.net/schema/api/1/';
|
|
||||||
}
|
|
||||||
$this->elementStart('direct_message', $attrs);
|
|
||||||
foreach($dm as $element => $value) {
|
|
||||||
switch ($element) {
|
|
||||||
case 'sender':
|
|
||||||
case 'recipient':
|
|
||||||
$this->showTwitterXmlUser($value, $element);
|
|
||||||
break;
|
|
||||||
case 'text':
|
|
||||||
$this->element($element, null, common_xml_safe_str($value));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$this->element($element, null, $value);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$this->elementEnd('direct_message');
|
|
||||||
}
|
|
||||||
|
|
||||||
function directMessageArray($message)
|
|
||||||
{
|
|
||||||
$dmsg = array();
|
|
||||||
|
|
||||||
$from_profile = $message->getFrom();
|
|
||||||
$to_profile = $message->getTo();
|
|
||||||
|
|
||||||
$dmsg['id'] = intval($message->id);
|
|
||||||
$dmsg['sender_id'] = intval($from_profile->id);
|
|
||||||
$dmsg['text'] = trim($message->content);
|
|
||||||
$dmsg['recipient_id'] = intval($to_profile->id);
|
|
||||||
$dmsg['created_at'] = $this->dateTwitter($message->created);
|
|
||||||
$dmsg['sender_screen_name'] = $from_profile->nickname;
|
|
||||||
$dmsg['recipient_screen_name'] = $to_profile->nickname;
|
|
||||||
$dmsg['sender'] = $this->twitterUserArray($from_profile, false);
|
|
||||||
$dmsg['recipient'] = $this->twitterUserArray($to_profile, false);
|
|
||||||
|
|
||||||
return $dmsg;
|
|
||||||
}
|
|
||||||
|
|
||||||
function rssDirectMessageArray($message)
|
|
||||||
{
|
|
||||||
$entry = array();
|
|
||||||
|
|
||||||
$from = $message->getFrom();
|
|
||||||
|
|
||||||
$entry['title'] = sprintf('Message from %1$s to %2$s',
|
|
||||||
$from->nickname, $message->getTo()->nickname);
|
|
||||||
|
|
||||||
$entry['content'] = common_xml_safe_str($message->rendered);
|
|
||||||
$entry['link'] = common_local_url('showmessage', array('message' => $message->id));
|
|
||||||
$entry['published'] = common_date_iso8601($message->created);
|
|
||||||
|
|
||||||
$taguribase = TagURI::base();
|
|
||||||
|
|
||||||
$entry['id'] = "tag:$taguribase:$entry[link]";
|
|
||||||
$entry['updated'] = $entry['published'];
|
|
||||||
|
|
||||||
$entry['author-name'] = $from->getBestName();
|
|
||||||
$entry['author-uri'] = $from->homepage;
|
|
||||||
|
|
||||||
$entry['avatar'] = $from->avatarUrl(AVATAR_STREAM_SIZE);
|
|
||||||
try {
|
|
||||||
$avatar = $from->getAvatar(AVATAR_STREAM_SIZE);
|
|
||||||
$entry['avatar-type'] = $avatar->mediatype;
|
|
||||||
} catch (Exception $e) {
|
|
||||||
$entry['avatar-type'] = 'image/png';
|
|
||||||
}
|
|
||||||
|
|
||||||
// RSS item specific
|
|
||||||
|
|
||||||
$entry['description'] = $entry['content'];
|
|
||||||
$entry['pubDate'] = common_date_rfc2822($message->created);
|
|
||||||
$entry['guid'] = $entry['link'];
|
|
||||||
|
|
||||||
return $entry;
|
|
||||||
}
|
|
||||||
|
|
||||||
function showSingleXmlDirectMessage($message)
|
|
||||||
{
|
|
||||||
$this->initDocument('xml');
|
|
||||||
$dmsg = $this->directMessageArray($message);
|
|
||||||
$this->showXmlDirectMessage($dmsg, true);
|
|
||||||
$this->endDocument('xml');
|
|
||||||
}
|
|
||||||
|
|
||||||
function showSingleJsonDirectMessage($message)
|
|
||||||
{
|
|
||||||
$this->initDocument('json');
|
|
||||||
$dmsg = $this->directMessageArray($message);
|
|
||||||
$this->showJsonObjects($dmsg);
|
|
||||||
$this->endDocument('json');
|
|
||||||
}
|
|
||||||
|
|
||||||
function showAtomGroups($group, $title, $id, $link, $subtitle=null, $selfuri=null)
|
function showAtomGroups($group, $title, $id, $link, $subtitle=null, $selfuri=null)
|
||||||
{
|
{
|
||||||
$this->initDocument('atom');
|
$this->initDocument('atom');
|
||||||
|
@ -218,6 +218,108 @@ class ApiDirectMessageAction extends ApiAuthAction
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BEGIN import from lib/apiaction.php
|
||||||
|
|
||||||
|
function showSingleXmlDirectMessage($message)
|
||||||
|
{
|
||||||
|
$this->initDocument('xml');
|
||||||
|
$dmsg = $this->directMessageArray($message);
|
||||||
|
$this->showXmlDirectMessage($dmsg, true);
|
||||||
|
$this->endDocument('xml');
|
||||||
|
}
|
||||||
|
|
||||||
|
function showSingleJsonDirectMessage($message)
|
||||||
|
{
|
||||||
|
$this->initDocument('json');
|
||||||
|
$dmsg = $this->directMessageArray($message);
|
||||||
|
$this->showJsonObjects($dmsg);
|
||||||
|
$this->endDocument('json');
|
||||||
|
}
|
||||||
|
|
||||||
|
function showXmlDirectMessage($dm, $namespaces=false)
|
||||||
|
{
|
||||||
|
$attrs = array();
|
||||||
|
if ($namespaces) {
|
||||||
|
$attrs['xmlns:statusnet'] = 'http://status.net/schema/api/1/';
|
||||||
|
}
|
||||||
|
$this->elementStart('direct_message', $attrs);
|
||||||
|
foreach($dm as $element => $value) {
|
||||||
|
switch ($element) {
|
||||||
|
case 'sender':
|
||||||
|
case 'recipient':
|
||||||
|
$this->showTwitterXmlUser($value, $element);
|
||||||
|
break;
|
||||||
|
case 'text':
|
||||||
|
$this->element($element, null, common_xml_safe_str($value));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
$this->element($element, null, $value);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$this->elementEnd('direct_message');
|
||||||
|
}
|
||||||
|
|
||||||
|
function directMessageArray($message)
|
||||||
|
{
|
||||||
|
$dmsg = array();
|
||||||
|
|
||||||
|
$from_profile = $message->getFrom();
|
||||||
|
$to_profile = $message->getTo();
|
||||||
|
|
||||||
|
$dmsg['id'] = intval($message->id);
|
||||||
|
$dmsg['sender_id'] = intval($from_profile->id);
|
||||||
|
$dmsg['text'] = trim($message->content);
|
||||||
|
$dmsg['recipient_id'] = intval($to_profile->id);
|
||||||
|
$dmsg['created_at'] = $this->dateTwitter($message->created);
|
||||||
|
$dmsg['sender_screen_name'] = $from_profile->nickname;
|
||||||
|
$dmsg['recipient_screen_name'] = $to_profile->nickname;
|
||||||
|
$dmsg['sender'] = $this->twitterUserArray($from_profile, false);
|
||||||
|
$dmsg['recipient'] = $this->twitterUserArray($to_profile, false);
|
||||||
|
|
||||||
|
return $dmsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
function rssDirectMessageArray($message)
|
||||||
|
{
|
||||||
|
$entry = array();
|
||||||
|
|
||||||
|
$from = $message->getFrom();
|
||||||
|
|
||||||
|
$entry['title'] = sprintf('Message from %1$s to %2$s',
|
||||||
|
$from->nickname, $message->getTo()->nickname);
|
||||||
|
|
||||||
|
$entry['content'] = common_xml_safe_str($message->rendered);
|
||||||
|
$entry['link'] = common_local_url('showmessage', array('message' => $message->id));
|
||||||
|
$entry['published'] = common_date_iso8601($message->created);
|
||||||
|
|
||||||
|
$taguribase = TagURI::base();
|
||||||
|
|
||||||
|
$entry['id'] = "tag:$taguribase:$entry[link]";
|
||||||
|
$entry['updated'] = $entry['published'];
|
||||||
|
|
||||||
|
$entry['author-name'] = $from->getBestName();
|
||||||
|
$entry['author-uri'] = $from->homepage;
|
||||||
|
|
||||||
|
$entry['avatar'] = $from->avatarUrl(AVATAR_STREAM_SIZE);
|
||||||
|
try {
|
||||||
|
$avatar = $from->getAvatar(AVATAR_STREAM_SIZE);
|
||||||
|
$entry['avatar-type'] = $avatar->mediatype;
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$entry['avatar-type'] = 'image/png';
|
||||||
|
}
|
||||||
|
|
||||||
|
// RSS item specific
|
||||||
|
|
||||||
|
$entry['description'] = $entry['content'];
|
||||||
|
$entry['pubDate'] = common_date_rfc2822($message->created);
|
||||||
|
$entry['guid'] = $entry['link'];
|
||||||
|
|
||||||
|
return $entry;
|
||||||
|
}
|
||||||
|
|
||||||
|
// END import from lib/apiaction.php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shows a list of direct messages as Twitter-style XML array
|
* Shows a list of direct messages as Twitter-style XML array
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user