if (!defined('LACONICA')) { exit(1); }
-class TwitterapiAction extends Action {
+class TwitterapiAction extends Action
+{
var $auth_user;
- function handle($args) {
+ function handle($args)
+ {
parent::handle($args);
}
-
- function twitter_user_array($profile, $get_notice=false) {
+
+ function twitter_user_array($profile, $get_notice=false)
+ {
$twitter_user = array();
$twitter_user['name'] = $profile->getBestName();
$twitter_user['followers_count'] = $this->count_subscriptions($profile);
$twitter_user['screen_name'] = $profile->nickname;
- $twitter_user['description'] = ($profile->bio) ? $profile->bio : NULL;
- $twitter_user['location'] = ($profile->location) ? $profile->location : NULL;
+ $twitter_user['description'] = ($profile->bio) ? $profile->bio : null;
+ $twitter_user['location'] = ($profile->location) ? $profile->location : null;
$twitter_user['id'] = intval($profile->id);
$avatar = $profile->getAvatar(AVATAR_STREAM_SIZE);
- $twitter_user['profile_image_url'] = ($avatar) ? common_avatar_display_url($avatar) : common_default_avatar(AVATAR_STREAM_SIZE);
+ $twitter_user['profile_image_url'] = ($avatar) ? $avatar->displayUrl() : Avatar::defaultImage(AVATAR_STREAM_SIZE);
$twitter_user['protected'] = 'false'; # not supported by Laconica yet
- $twitter_user['url'] = ($profile->homepage) ? $profile->homepage : NULL;
+ $twitter_user['url'] = ($profile->homepage) ? $profile->homepage : null;
if ($get_notice) {
$notice = $profile->getCurrentNotice();
return $twitter_user;
}
- function twitter_status_array($notice, $include_user=true) {
+ function twitter_status_array($notice, $include_user=true)
+ {
$profile = $notice->getProfile();
$twitter_status['text'] = $notice->content;
$twitter_status['truncated'] = 'false'; # Not possible on Laconica
$twitter_status['created_at'] = $this->date_twitter($notice->created);
- $twitter_status['in_reply_to_status_id'] = ($notice->reply_to) ? intval($notice->reply_to) : NULL;
+ $twitter_status['in_reply_to_status_id'] = ($notice->reply_to) ? intval($notice->reply_to) : null;
$twitter_status['source'] = $this->source_link($notice->source);
$twitter_status['id'] = intval($notice->id);
- $twitter_status['in_reply_to_user_id'] = ($notice->reply_to) ? $this->replier_by_reply(intval($notice->reply_to)) : NULL;
+ $twitter_status['in_reply_to_user_id'] = ($notice->reply_to) ? $this->replier_by_reply(intval($notice->reply_to)) : null;
if (isset($this->auth_user)) {
$twitter_status['favorited'] = ($this->auth_user->hasFave($notice)) ? 'true' : 'false';
return $twitter_status;
}
- function twitter_rss_entry_array($notice) {
+ function twitter_rss_entry_array($notice)
+ {
$profile = $notice->getProfile();
return $entry;
}
- function twitter_rss_dmsg_array($message) {
+ function twitter_rss_dmsg_array($message)
+ {
$server = common_config('site', 'server');
$entry = array();
return $entry;
}
- function twitter_dmsg_array($message) {
+ function twitter_dmsg_array($message)
+ {
$twitter_dm = array();
return $twitter_dm;
}
- function show_twitter_xml_status($twitter_status) {
- common_element_start('status');
+ function show_twitter_xml_status($twitter_status)
+ {
+ $this->elementStart('status');
foreach($twitter_status as $element => $value) {
switch ($element) {
case 'user':
$this->show_twitter_xml_user($twitter_status['user']);
break;
case 'text':
- common_element($element, NULL, common_xml_safe_str($value));
+ $this->element($element, null, common_xml_safe_str($value));
break;
default:
- common_element($element, NULL, $value);
+ $this->element($element, null, $value);
}
}
- common_element_end('status');
+ $this->elementEnd('status');
}
- function show_twitter_xml_user($twitter_user, $role='user') {
- common_element_start($role);
+ function show_twitter_xml_user($twitter_user, $role='user')
+ {
+ $this->elementStart($role);
foreach($twitter_user as $element => $value) {
if ($element == 'status') {
$this->show_twitter_xml_status($twitter_user['status']);
} else {
- common_element($element, NULL, $value);
+ $this->element($element, null, $value);
}
}
- common_element_end($role);
- }
-
- function show_twitter_rss_item($entry) {
- common_element_start('item');
- common_element('title', NULL, $entry['title']);
- common_element('description', NULL, $entry['description']);
- common_element('pubDate', NULL, $entry['pubDate']);
- common_element('guid', NULL, $entry['guid']);
- common_element('link', NULL, $entry['link']);
- common_element_end('item');
- }
-
- function show_twitter_atom_entry($entry) {
- common_element_start('entry');
- common_element('title', NULL, $entry['title']);
- common_element('content', array('type' => 'html'), $entry['content']);
- common_element('id', NULL, $entry['id']);
- common_element('published', NULL, $entry['published']);
- common_element('updated', NULL, $entry['updated']);
- common_element('link', array('href' => $entry['link'], 'rel' => 'alternate', 'type' => 'text/html'), NULL);
- common_element_end('entry');
- }
-
- function show_json_objects($objects) {
+ $this->elementEnd($role);
+ }
+
+ function show_twitter_rss_item($entry)
+ {
+ $this->elementStart('item');
+ $this->element('title', null, $entry['title']);
+ $this->element('description', null, $entry['description']);
+ $this->element('pubDate', null, $entry['pubDate']);
+ $this->element('guid', null, $entry['guid']);
+ $this->element('link', null, $entry['link']);
+ $this->elementEnd('item');
+ }
+
+ function show_twitter_atom_entry($entry)
+ {
+ $this->elementStart('entry');
+ $this->element('title', null, $entry['title']);
+ $this->element('content', array('type' => 'html'), $entry['content']);
+ $this->element('id', null, $entry['id']);
+ $this->element('published', null, $entry['published']);
+ $this->element('updated', null, $entry['updated']);
+ $this->element('link', array('href' => $entry['link'], 'rel' => 'alternate', 'type' => 'text/html'), null);
+ $this->elementEnd('entry');
+ }
+
+ function show_json_objects($objects)
+ {
print(json_encode($objects));
}
- function show_single_xml_status($notice) {
+ function show_single_xml_status($notice)
+ {
$this->init_document('xml');
$twitter_status = $this->twitter_status_array($notice);
$this->show_twitter_xml_status($twitter_status);
$this->end_document('xml');
}
- function show_single_json_status($notice) {
+ function show_single_json_status($notice)
+ {
$this->init_document('json');
$status = $this->twitter_status_array($notice);
$this->show_json_objects($status);
$this->end_document('json');
}
- function show_single_xml_dmsg($message) {
+ function show_single_xml_dmsg($message)
+ {
$this->init_document('xml');
$dmsg = $this->twitter_dmsg_array($message);
$this->show_twitter_xml_dmsg($dmsg);
$this->end_document('xml');
}
- function show_single_json_dmsg($message) {
+ function show_single_json_dmsg($message)
+ {
$this->init_document('json');
$dmsg = $this->twitter_dmsg_array($message);
$this->show_json_objects($dmsg);
$this->end_document('json');
}
- function show_twitter_xml_dmsg($twitter_dm) {
- common_element_start('direct_message');
+ function show_twitter_xml_dmsg($twitter_dm)
+ {
+ $this->elementStart('direct_message');
foreach($twitter_dm as $element => $value) {
switch ($element) {
case 'sender':
$this->show_twitter_xml_user($value, $element);
break;
case 'text':
- common_element($element, NULL, common_xml_safe_str($value));
+ $this->element($element, null, common_xml_safe_str($value));
break;
default:
- common_element($element, NULL, $value);
+ $this->element($element, null, $value);
}
}
- common_element_end('direct_message');
+ $this->elementEnd('direct_message');
}
- function show_xml_timeline($notice) {
+ function show_xml_timeline($notice)
+ {
$this->init_document('xml');
- common_element_start('statuses', array('type' => 'array'));
+ $this->elementStart('statuses', array('type' => 'array'));
if (is_array($notice)) {
foreach ($notice as $n) {
}
}
- common_element_end('statuses');
+ $this->elementEnd('statuses');
$this->end_document('xml');
}
- function show_rss_timeline($notice, $title, $link, $subtitle, $suplink=NULL) {
+ function show_rss_timeline($notice, $title, $link, $subtitle, $suplink=null)
+ {
$this->init_document('rss');
- common_element_start('channel');
- common_element('title', NULL, $title);
- common_element('link', NULL, $link);
+ $this->elementStart('channel');
+ $this->element('title', null, $title);
+ $this->element('link', null, $link);
if (!is_null($suplink)) {
# For FriendFeed's SUP protocol
- common_element('link', array('xmlns' => 'http://www.w3.org/2005/Atom',
+ $this->element('link', array('xmlns' => 'http://www.w3.org/2005/Atom',
'rel' => 'http://api.friendfeed.com/2008/03#sup',
'href' => $suplink,
'type' => 'application/json'));
}
- common_element('description', NULL, $subtitle);
- common_element('language', NULL, 'en-us');
- common_element('ttl', NULL, '40');
+ $this->element('description', null, $subtitle);
+ $this->element('language', null, 'en-us');
+ $this->element('ttl', null, '40');
if (is_array($notice)) {
foreach ($notice as $n) {
}
}
- common_element_end('channel');
+ $this->elementEnd('channel');
$this->end_twitter_rss();
}
- function show_atom_timeline($notice, $title, $id, $link, $subtitle=NULL, $suplink=NULL) {
+ function show_atom_timeline($notice, $title, $id, $link, $subtitle=null, $suplink=null)
+ {
$this->init_document('atom');
- common_element('title', NULL, $title);
- common_element('id', NULL, $id);
- common_element('link', array('href' => $link, 'rel' => 'alternate', 'type' => 'text/html'), NULL);
+ $this->element('title', null, $title);
+ $this->element('id', null, $id);
+ $this->element('link', array('href' => $link, 'rel' => 'alternate', 'type' => 'text/html'), null);
if (!is_null($suplink)) {
# For FriendFeed's SUP protocol
- common_element('link', array('rel' => 'http://api.friendfeed.com/2008/03#sup',
+ $this->element('link', array('rel' => 'http://api.friendfeed.com/2008/03#sup',
'href' => $suplink,
'type' => 'application/json'));
}
- common_element('subtitle', NULL, $subtitle);
+ $this->element('subtitle', null, $subtitle);
if (is_array($notice)) {
foreach ($notice as $n) {
}
- function show_json_timeline($notice) {
+ function show_json_timeline($notice)
+ {
$this->init_document('json');
// Anyone know what date format this is?
// Twitter's dates look like this: "Mon Jul 14 23:52:38 +0000 2008" -- Zach
- function date_twitter($dt) {
+ function date_twitter($dt)
+ {
$t = strtotime($dt);
return date("D M d G:i:s O Y", $t);
}
- function replier_by_reply($reply_id) {
+ function replier_by_reply($reply_id)
+ {
$notice = Notice::staticGet($reply_id);
if ($notice) {
$profile = $notice->getProfile();
} else {
common_debug("Can't get notice: $reply_id", __FILE__);
}
- return NULL;
+ return null;
}
// XXX: Candidate for a general utility method somewhere?
- function count_subscriptions($profile) {
+ function count_subscriptions($profile)
+ {
$count = 0;
$sub = new Subscription();
}
}
- function init_document($type='xml') {
+ function init_document($type='xml')
+ {
switch ($type) {
case 'xml':
header('Content-Type: application/xml; charset=utf-8');
- common_start_xml();
+ $this->startXML();
break;
case 'json':
header('Content-Type: application/json; charset=utf-8');
return;
}
- function end_document($type='xml') {
+ function end_document($type='xml')
+ {
switch ($type) {
case 'xml':
- common_end_xml();
+ $this->endXML();
break;
case 'json':
return;
}
- function client_error($msg, $code = 400, $content_type = 'json') {
+ function client_error($msg, $code = 400, $content_type = 'json')
+ {
static $status = array(400 => 'Bad Request',
401 => 'Unauthorized',
if ($content_type == 'xml') {
$this->init_document('xml');
- common_element_start('hash');
- common_element('error', NULL, $msg);
- common_element('request', NULL, $_SERVER['REQUEST_URI']);
- common_element_end('hash');
+ $this->elementStart('hash');
+ $this->element('error', null, $msg);
+ $this->element('request', null, $_SERVER['REQUEST_URI']);
+ $this->elementEnd('hash');
$this->end_document('xml');
} else {
$this->init_document('json');
}
- function init_twitter_rss() {
- common_start_xml();
- common_element_start('rss', array('version' => '2.0'));
+ function init_twitter_rss()
+ {
+ $this->startXML();
+ $this->elementStart('rss', array('version' => '2.0'));
}
- function end_twitter_rss() {
- common_element_end('rss');
- common_end_xml();
+ function end_twitter_rss()
+ {
+ $this->elementEnd('rss');
+ $this->endXML();
}
- function init_twitter_atom() {
- common_start_xml();
- common_element_start('feed', array('xmlns' => 'http://www.w3.org/2005/Atom', 'xml:lang' => 'en-US'));
+ function init_twitter_atom()
+ {
+ $this->startXML();
+ $this->elementStart('feed', array('xmlns' => 'http://www.w3.org/2005/Atom', 'xml:lang' => 'en-US'));
}
- function end_twitter_atom() {
- common_end_xml();
- common_element_end('feed');
+ function end_twitter_atom()
+ {
+ $this->endXML();
+ $this->elementEnd('feed');
}
- function show_profile($profile, $content_type='xml', $notice=NULL) {
+ function show_profile($profile, $content_type='xml', $notice=null)
+ {
$profile_array = $this->twitter_user_array($profile, true);
switch ($content_type) {
case 'xml':
return;
}
- function get_user($id, $apidata=NULL) {
+ function get_user($id, $apidata=null)
+ {
if (!$id) {
return $apidata['user'];
} else if (is_numeric($id)) {
}
}
- function get_profile($id) {
+ function get_profile($id)
+ {
if (is_numeric($id)) {
return Profile::staticGet($id);
} else {
if ($user) {
return $user->getProfile();
} else {
- return NULL;
+ return null;
}
}
}
- function source_link($source) {
+ function source_link($source)
+ {
$source_name = _($source);
switch ($source) {
case 'web':
return $source_name;
}
- function show_extended_profile($user, $apidata) {
+ function show_extended_profile($user, $apidata)
+ {
$this->auth_user = $apidata['user'];
}
-}
\ No newline at end of file
+}