From 18d4226ead47b08af03f5e659822389a3cd6bbc9 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 23 Oct 2008 17:26:59 -0400 Subject: [PATCH] add atom and RSS 2.0 link elements to head of profile page darcs-hash:20081023212659-5ed1f-0efa86cf7fbcc7bae4cb468fc514f33adf15ba0d.gz --- actions/showstream.php | 18 +++++++++++++++++- lib/util.php | 17 +++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/actions/showstream.php b/actions/showstream.php index 5650038b34..16bffa4ea7 100644 --- a/actions/showstream.php +++ b/actions/showstream.php @@ -75,11 +75,27 @@ class ShowstreamAction extends StreamAction { } function show_header($user) { + # Feeds + common_element('link', array('rel' => 'alternate', + 'href' => common_local_url('api', + array('apiaction' => 'statuses', + 'method' => 'user_timeline.rss', + 'argument' => $user->nickname)), + 'type' => 'application/rss+xml', + 'title' => sprintf(_('Notice feed for %s'), $user->nickname))); + common_element('link', array('rel' => 'alternate feed', + 'href' => common_local_url('api', + array('apiaction' => 'statuses', + 'method' => 'user_timeline.atom', + 'argument' => $user->nickname)), + 'type' => 'application/atom+xml', + 'title' => sprintf(_('Notice feed for %s'), $user->nickname))); common_element('link', array('rel' => 'alternate', 'href' => common_local_url('userrss', array('nickname' => $user->nickname)), - 'type' => 'application/rss+xml', + 'type' => 'application/rdf+xml', 'title' => sprintf(_('Notice feed for %s'), $user->nickname))); + # FOAF common_element('link', array('rel' => 'meta', 'href' => common_local_url('foaf', array('nickname' => $user->nickname)), diff --git a/lib/util.php b/lib/util.php index 383bbe939a..924625e02d 100644 --- a/lib/util.php +++ b/lib/util.php @@ -954,6 +954,23 @@ function common_fancy_url($action, $args=NULL) { return common_path('message/' . $args['message']); case 'newmessage': return common_path('message/new' . (($args) ? ('?' . http_build_query($args)) : '')); + case 'api': + # XXX: do fancy URLs for all the API methods + switch (strtolower($args['apiaction'])) { + case 'statuses': + switch (strtolower($args['method'])) { + case 'user_timeline.rss': + return common_path('api/statuses/user_timeline/'.$args['argument'].'.rss'); + case 'user_timeline.atom': + return common_path('api/statuses/user_timeline/'.$args['argument'].'.rss'); + case 'user_timeline.rss': + return common_path('api/statuses/user_timeline/'.$args['argument'].'.rss'); + case 'user_timeline.atom': + return common_path('api/statuses/user_timeline/'.$args['argument'].'.rss'); + default: return common_simple_url($action, $args); + } + default: return common_simple_url($action, $args); + } default: return common_simple_url($action, $args); }