summaryrefslogtreecommitdiff
path: root/actions
diff options
context:
space:
mode:
Diffstat (limited to 'actions')
-rw-r--r--actions/twitapidirect_messages.php111
1 files changed, 98 insertions, 13 deletions
diff --git a/actions/twitapidirect_messages.php b/actions/twitapidirect_messages.php
index aad055fbf..39780258a 100644
--- a/actions/twitapidirect_messages.php
+++ b/actions/twitapidirect_messages.php
@@ -25,42 +25,127 @@ class Twitapidirect_messagesAction extends TwitterapiAction {
function is_readonly() {
-
- static $write_methods = array( 'direct_messages',
+
+ static $write_methods = array( 'direct_messages',
'sent');
-
- $cmdtext = explode('.', $this->arg('method'));
-
- if (in_array($cmdtext[0], $write_methods)) {
+
+ $cmdtext = explode('.', $this->arg('method'));
+
+ if (in_array($cmdtext[0], $write_methods)) {
return false;
}
-
+
return true;
}
function direct_messages($args, $apidata) {
parent::handle($args);
- common_server_error(_('API method under construction.'), $code=501);
+
+ $user = $apidata['user'];
+
+ $count = $this->arg('count');
+ $since = $this->arg('since');
+ $since_id = $this->arg('since_id');
+ $page = $this->arg('page');
+
+ if (!$page) {
+ $page = 1;
+ }
+
+ if (!$count) {
+ $count = 20;
+ }
+
+ $message = new Message();
+ $message->to_profile = $user->id;
+ $message->orderBy('created DESC, id DESC');
+ $message->limit((($page-1)*20), $count);
+
+ $message->find();
+
+ switch($apidata['content-type']) {
+ case 'xml':
+ $this->show_xml_direct_messages($message);
+ break;
+ case 'rss':
+ //$this->show_rss_timeline($notice, $title, $id, $link, $subtitle);
+ break;
+ case 'atom':
+ //$this->show_atom_timeline($notice, $title, $id, $link, $subtitle);
+ break;
+ case 'json':
+ $this->show_json_direct_messages($message);
+ break;
+ default:
+ common_user_error(_('API method not found!'), $code = 404);
+ }
+
exit();
}
-
+
function sent($args, $apidata) {
parent::handle($args);
common_server_error(_('API method under construction.'), $code=501);
exit();
}
-
- # had to change this from "new" to "create" to avoid PHP reserved word
+
+ # had to change this from "new" to "create" to avoid PHP reserved word
function create($args, $apidata) {
parent::handle($args);
common_server_error(_('API method under construction.'), $code=501);
exit();
}
-
+
function destroy($args, $apidata) {
parent::handle($args);
common_server_error(_('API method under construction.'), $code=501);
exit();
}
-
+
+ function show_xml_direct_messages($message) {
+
+ $this->init_document('xml');
+ common_element_start('direct-messages', array('type' => 'array'));
+
+ if (is_array($messages)) {
+ foreach ($message as $m) {
+ $twitter_dm = $this->twitter_dm_array($m);
+ $this->show_twitter_xml_dm($twitter_dm);
+ }
+ } else {
+ while ($message->fetch()) {
+ $twitter_dm = $this->twitter_dm_array($message);
+ $this->show_twitter_xml_dm($twitter_dm);
+ }
+ }
+
+ common_element_end('direct-messages');
+ $this->end_document('xml');
+ }
+
+ function show_json_direct_messages($message) {
+
+ $this->init_document('json');
+
+ $dmsgs = array();
+
+ if (is_array($message)) {
+ foreach ($message as $m) {
+ $twitter_dm = $this->twitter_dm_array($m);
+ array_push($dmsgs, $twitter_dm);
+ }
+ } else {
+ while ($message->fetch()) {
+ $twitter_dm = $this->twitter_dm_array($message);
+ array_push($dmsgs, $twitter_dm);
+ }
+ }
+
+ $this->show_twitter_json_dmsgs($dmsgs);
+
+ $this->end_document('json');
+ }
+
+
+
} \ No newline at end of file