Refactor and centralize notice source link calculation

This commit is contained in:
Zach Copley
2010-05-06 00:20:10 -07:00
parent d9fddff539
commit c78f67aa73
4 changed files with 90 additions and 71 deletions

View File

@@ -260,7 +260,19 @@ class ApiAction extends Action
$twitter_status['created_at'] = $this->dateTwitter($notice->created);
$twitter_status['in_reply_to_status_id'] = ($notice->reply_to) ?
intval($notice->reply_to) : null;
$twitter_status['source'] = $this->sourceLink($notice->source);
$source = null;
$ns = $notice->getSource();
if ($ns) {
if (!empty($ns->name) && !empty($ns->url)) {
$source = '<a href="' . $ns->url . '">' . $ns->name . '</a>';
} else {
$source = $ns->code;
}
}
$twitter_status['source'] = $source;
$twitter_status['id'] = intval($notice->id);
$replier_profile = null;
@@ -1298,43 +1310,6 @@ class ApiAction extends Action
}
}
function sourceLink($source)
{
$source_name = _($source);
switch ($source) {
case 'web':
case 'xmpp':
case 'mail':
case 'omb':
case 'api':
break;
default:
$name = null;
$url = null;
$ns = Notice_source::staticGet($source);
if ($ns) {
$name = $ns->name;
$url = $ns->url;
} else {
$app = Oauth_application::staticGet('name', $source);
if ($app) {
$name = $app->name;
$url = $app->source_url;
}
}
if (!empty($name) && !empty($url)) {
$source_name = '<a href="' . $url . '">' . $name . '</a>';
}
break;
}
return $source_name;
}
/**
* Returns query argument or default value if not found. Certain
* parameters used throughout the API are lightly scrubbed and