static function cacheKey()
{
- return Cache::codeKey('router');
+ $parts = array('router');
+
+ // Many router paths depend on this setting.
+ if (common_config('singleuser', 'enabled')) {
+ $parts[] = '1user';
+ } else {
+ $parts[] = 'multi';
+ }
+
+ return Cache::codeKey(implode(':', $parts));
}
function initialize()
'deleteuser',
'geocode',
'version',
+ 'backupaccount',
+ 'deleteaccount',
+ 'restoreaccount',
);
foreach ($main as $a) {
$m->connect('api/statuses/friends_timeline/:id.:format',
array('action' => 'ApiTimelineFriends',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json|rss|atom)'));
$m->connect('api/statuses/home_timeline.:format',
$m->connect('api/statuses/home_timeline/:id.:format',
array('action' => 'ApiTimelineHome',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json|rss|atom)'));
$m->connect('api/statuses/user_timeline.:format',
$m->connect('api/statuses/user_timeline/:id.:format',
array('action' => 'ApiTimelineUser',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json|rss|atom)'));
$m->connect('api/statuses/mentions.:format',
$m->connect('api/statuses/mentions/:id.:format',
array('action' => 'ApiTimelineMentions',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json|rss|atom)'));
$m->connect('api/statuses/replies.:format',
$m->connect('api/statuses/replies/:id.:format',
array('action' => 'ApiTimelineMentions',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json|rss|atom)'));
$m->connect('api/statuses/retweeted_by_me.:format',
$m->connect('api/statuses/friends/:id.:format',
array('action' => 'ApiUserFriends',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json)'));
$m->connect('api/statuses/followers.:format',
$m->connect('api/statuses/followers/:id.:format',
array('action' => 'ApiUserFollowers',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json)'));
$m->connect('api/statuses/show.:format',
$m->connect('api/users/show/:id.:format',
array('action' => 'ApiUserShow',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
+ 'format' => '(xml|json)'));
+
+ $m->connect('api/users/profile_image/:screen_name.:format',
+ array('action' => 'ApiUserProfileImage',
+ 'screen_name' => Nickname::DISPLAY_FMT,
'format' => '(xml|json)'));
// direct messages
$m->connect('api/friendships/create/:id.:format',
array('action' => 'ApiFriendshipsCreate',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json)'));
$m->connect('api/friendships/destroy/:id.:format',
array('action' => 'ApiFriendshipsDestroy',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json)'));
// Social graph
$m->connect('api/favorites/:id.:format',
array('action' => 'ApiTimelineFavorites',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json|rss|atom)'));
$m->connect('api/favorites/create/:id.:format',
array('action' => 'ApiFavoriteCreate',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => '[0-9]+',
'format' => '(xml|json)'));
$m->connect('api/favorites/destroy/:id.:format',
array('action' => 'ApiFavoriteDestroy',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => '[0-9]+',
'format' => '(xml|json)'));
// blocks
$m->connect('api/blocks/create/:id.:format',
array('action' => 'ApiBlockCreate',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json)'));
$m->connect('api/blocks/destroy.:format',
$m->connect('api/blocks/destroy/:id.:format',
array('action' => 'ApiBlockDestroy',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json)'));
// help
$m->connect('api/statusnet/groups/timeline/:id.:format',
array('action' => 'ApiTimelineGroup',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json|rss|atom)'));
$m->connect('api/statusnet/groups/show.:format',
$m->connect('api/statusnet/groups/show/:id.:format',
array('action' => 'ApiGroupShow',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json)'));
$m->connect('api/statusnet/groups/join.:format',
array('action' => 'ApiGroupJoin',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json)'));
$m->connect('api/statusnet/groups/join/:id.:format',
$m->connect('api/statusnet/groups/leave.:format',
array('action' => 'ApiGroupLeave',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json)'));
$m->connect('api/statusnet/groups/leave/:id.:format',
$m->connect('api/statusnet/groups/list/:id.:format',
array('action' => 'ApiGroupList',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json|rss|atom)'));
$m->connect('api/statusnet/groups/list_all.:format',
$m->connect('api/statusnet/groups/membership/:id.:format',
array('action' => 'ApiGroupMembership',
- 'id' => Nickname::DISPLAY_FMT,
+ 'id' => Nickname::INPUT_FMT,
'format' => '(xml|json)'));
$m->connect('api/statusnet/groups/create.:format',
$m->connect('api/oauth/authorize',
array('action' => 'ApiOauthAuthorize'));
- $m->connect('api/statusnet/app/service/:id.xml',
- array('action' => 'ApiAtomService',
- 'id' => Nickname::DISPLAY_FMT));
-
- $m->connect('api/statusnet/app/service.xml',
- array('action' => 'ApiAtomService'));
-
// Admin
$m->connect('admin/site', array('action' => 'siteadminpanel'));
array('nickname' => Nickname::DISPLAY_FMT));
}
+ // AtomPub API
+
+ $m->connect('api/statusnet/app/service/:id.xml',
+ array('action' => 'ApiAtomService'),
+ array('id' => Nickname::DISPLAY_FMT));
+
+ $m->connect('api/statusnet/app/service.xml',
+ array('action' => 'ApiAtomService'));
+
+ $m->connect('api/statusnet/app/subscriptions/:subscriber/:subscribed.atom',
+ array('action' => 'AtomPubShowSubscription'),
+ array('subscriber' => '[0-9]+',
+ 'subscribed' => '[0-9]+'));
+
+ $m->connect('api/statusnet/app/subscriptions/:subscriber.atom',
+ array('action' => 'AtomPubSubscriptionFeed'),
+ array('subscriber' => '[0-9]+'));
+
+ $m->connect('api/statusnet/app/favorites/:profile/:notice.atom',
+ array('action' => 'AtomPubShowFavorite'),
+ array('profile' => '[0-9]+',
+ 'notice' => '[0-9]+'));
+
+ $m->connect('api/statusnet/app/favorites/:profile.atom',
+ array('action' => 'AtomPubFavoriteFeed'),
+ array('profile' => '[0-9]+'));
+
+ $m->connect('api/statusnet/app/memberships/:profile/:group.atom',
+ array('action' => 'AtomPubShowMembership'),
+ array('profile' => '[0-9]+',
+ 'group' => '[0-9]+'));
+
+ $m->connect('api/statusnet/app/memberships/:profile.atom',
+ array('action' => 'AtomPubMembershipFeed'),
+ array('profile' => '[0-9]+'));
+
// user stuff
Event::handle('RouterInitialized', array($m));