X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2Frouter.php;h=3febbbeff44bee10f34e063215f91f03468db0a6;hb=1776c90cb98d5ca738db143703fb998612ada31e;hp=8fbb6eb1f43ff7ae4478e6b7dc686e5ddf6f5f5a;hpb=11f2a3d551d39732d44495751eaf4643c9fd8c90;p=quix0rs-gnu-social.git diff --git a/lib/router.php b/lib/router.php index 8fbb6eb1f4..3febbbeff4 100644 --- a/lib/router.php +++ b/lib/router.php @@ -69,19 +69,7 @@ class Router function __construct() { if (empty($this->m)) { - if (!common_config('router', 'cache')) { - $this->m = $this->initialize(); - } else { - $k = self::cacheKey(); - $c = Cache::instance(); - $m = $c->get($k); - if (!empty($m)) { - $this->m = $m; - } else { - $this->m = $this->initialize(); - $c->set($k, $this->m); - } - } + $this->m = $this->initialize(); } } @@ -136,6 +124,20 @@ class Router array('user_id' => '[0-9]+', 'token' => '.+')); + // these take a code; before the main part + + foreach (array('register', 'confirmaddress', 'recoverpassword') as $c) { + $m->connect('main/'.$c.'/:code', array('action' => $c)); + } + + // Also need a block variant accepting ID on URL for mail links + $m->connect('main/block/:profileid', + array('action' => 'block'), + array('profileid' => '[0-9]+')); + + $m->connect('main/sup/:seconds', array('action' => 'sup'), + array('seconds' => '[0-9]+')); + // main stuff is repetitive $main = array('login', 'logout', 'register', 'subscribe', @@ -154,39 +156,20 @@ class Router 'backupaccount', 'deleteaccount', 'restoreaccount', + 'top', ); foreach ($main as $a) { $m->connect('main/'.$a, array('action' => $a)); } - // Also need a block variant accepting ID on URL for mail links - $m->connect('main/block/:profileid', - array('action' => 'block'), - array('profileid' => '[0-9]+')); - - $m->connect('main/sup/:seconds', array('action' => 'sup'), - array('seconds' => '[0-9]+')); - - $m->connect('main/tagprofile', array('action' => 'tagprofile')); $m->connect('main/tagprofile/:id', array('action' => 'tagprofile'), array('id' => '[0-9]+')); - $m->connect('main/oembed', - array('action' => 'oembed')); + $m->connect('main/tagprofile', array('action' => 'tagprofile')); $m->connect('main/xrds', array('action' => 'publicxrds')); - $m->connect('.well-known/host-meta', - array('action' => 'hostmeta')); - $m->connect('main/xrd', - array('action' => 'userxrd')); - - // these take a code - - foreach (array('register', 'confirmaddress', 'recoverpassword') as $c) { - $m->connect('main/'.$c.'/:code', array('action' => $c)); - } // settings @@ -195,6 +178,10 @@ class Router $m->connect('settings/'.$s, array('action' => $s.'settings')); } + if (common_config('oldschool', 'enabled')) { + $m->connect('settings/oldschool', array('action' => 'oldschoolsettings')); + } + $m->connect('settings/oauthapps/show/:id', array('action' => 'showapplication'), array('id' => '[0-9]+') @@ -214,18 +201,18 @@ class Router // search foreach (array('group', 'people', 'notice') as $s) { - $m->connect('search/'.$s, array('action' => $s.'search')); $m->connect('search/'.$s.'?q=:q', array('action' => $s.'search'), array('q' => '.+')); + $m->connect('search/'.$s, array('action' => $s.'search')); } // The second of these is needed to make the link work correctly // when inserted into the page. The first is needed to match the // route on the way in. Seems to be another Net_URL_Mapper bug to me. - $m->connect('search/notice/rss', array('action' => 'noticesearchrss')); $m->connect('search/notice/rss?q=:q', array('action' => 'noticesearchrss'), array('q' => '.+')); + $m->connect('search/notice/rss', array('action' => 'noticesearchrss')); $m->connect('attachment/:attachment', array('action' => 'attachment'), @@ -239,15 +226,17 @@ class Router array('action' => 'attachment_thumbnail'), array('attachment' => '[0-9]+')); - $m->connect('notice/new', array('action' => 'newnotice')); - $m->connect('notice/new?replyto=:replyto', - array('action' => 'newnotice'), - array('replyto' => Nickname::DISPLAY_FMT)); $m->connect('notice/new?replyto=:replyto&inreplyto=:inreplyto', array('action' => 'newnotice'), array('replyto' => Nickname::DISPLAY_FMT), array('inreplyto' => '[0-9]+')); + $m->connect('notice/new?replyto=:replyto', + array('action' => 'newnotice'), + array('replyto' => Nickname::DISPLAY_FMT)); + + $m->connect('notice/new', array('action' => 'newnotice')); + $m->connect('notice/:notice/file', array('action' => 'file'), array('notice' => '[0-9]+')); @@ -255,11 +244,13 @@ class Router $m->connect('notice/:notice', array('action' => 'shownotice'), array('notice' => '[0-9]+')); - $m->connect('notice/delete', array('action' => 'deletenotice')); + $m->connect('notice/delete/:notice', array('action' => 'deletenotice'), array('notice' => '[0-9]+')); + $m->connect('notice/delete', array('action' => 'deletenotice')); + $m->connect('bookmarklet/new', array('action' => 'bookmarklet')); // conversation @@ -281,10 +272,12 @@ class Router array('action' => 'userbyid'), array('id' => '[0-9]+')); - $m->connect('tags/', array('action' => 'publictagcloud')); - $m->connect('tag/', array('action' => 'publictagcloud')); - $m->connect('tags', array('action' => 'publictagcloud')); - $m->connect('tag', array('action' => 'publictagcloud')); + if (!common_config('performance', 'high')) { + $m->connect('tags/', array('action' => 'publictagcloud')); + $m->connect('tag/', array('action' => 'publictagcloud')); + $m->connect('tags', array('action' => 'publictagcloud')); + $m->connect('tag', array('action' => 'publictagcloud')); + } $m->connect('tag/:tag/rss', array('action' => 'tagrss'), array('tag' => self::REGEX_TAG)); @@ -335,6 +328,10 @@ class Router array('action' => 'showgroup'), array('nickname' => Nickname::DISPLAY_FMT)); + $m->connect('group/:nickname/', + array('action' => 'showgroup'), + array('nickname' => Nickname::DISPLAY_FMT)); + $m->connect('group/', array('action' => 'groups')); $m->connect('group', array('action' => 'groups')); $m->connect('groups/', array('action' => 'groups')); @@ -353,12 +350,17 @@ class Router array('action' => 'ApiTimelinePublic', 'format' => '(xml|json|rss|atom|as)')); - $m->connect('api/statuses/friends_timeline.:format', + $m->connect('api/statuses/friends_timeline/:id.:format', array('action' => 'ApiTimelineFriends', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom|as)')); - $m->connect('api/statuses/friends_timeline/:id.:format', + $m->connect('api/statuses/friends_timeline.:format', array('action' => 'ApiTimelineFriends', + 'format' => '(xml|json|rss|atom|as)')); + + $m->connect('api/statuses/home_timeline/:id.:format', + array('action' => 'ApiTimelineHome', 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom|as)')); @@ -366,8 +368,8 @@ class Router array('action' => 'ApiTimelineHome', 'format' => '(xml|json|rss|atom|as)')); - $m->connect('api/statuses/home_timeline/:id.:format', - array('action' => 'ApiTimelineHome', + $m->connect('api/statuses/user_timeline/:id.:format', + array('action' => 'ApiTimelineUser', 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom|as)')); @@ -375,8 +377,8 @@ class Router array('action' => 'ApiTimelineUser', 'format' => '(xml|json|rss|atom|as)')); - $m->connect('api/statuses/user_timeline/:id.:format', - array('action' => 'ApiTimelineUser', + $m->connect('api/statuses/mentions/:id.:format', + array('action' => 'ApiTimelineMentions', 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom|as)')); @@ -384,7 +386,7 @@ class Router array('action' => 'ApiTimelineMentions', 'format' => '(xml|json|rss|atom|as)')); - $m->connect('api/statuses/mentions/:id.:format', + $m->connect('api/statuses/replies/:id.:format', array('action' => 'ApiTimelineMentions', 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom|as)')); @@ -392,12 +394,16 @@ class Router $m->connect('api/statuses/replies.:format', array('action' => 'ApiTimelineMentions', 'format' => '(xml|json|rss|atom|as)')); - - $m->connect('api/statuses/replies/:id.:format', + + $m->connect('api/statuses/mentions_timeline/:id.:format', array('action' => 'ApiTimelineMentions', 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom|as)')); + $m->connect('api/statuses/mentions_timeline.:format', + array('action' => 'ApiTimelineMentions', + 'format' => '(xml|json|rss|atom|as)')); + $m->connect('api/statuses/retweeted_by_me.:format', array('action' => 'ApiTimelineRetweetedByMe', 'format' => '(xml|json|atom|as)')); @@ -410,17 +416,13 @@ class Router array('action' => 'ApiTimelineRetweetsOfMe', 'format' => '(xml|json|atom|as)')); - $m->connect('api/statuses/friends.:format', - array('action' => 'ApiUserFriends', - 'format' => '(xml|json)')); - $m->connect('api/statuses/friends/:id.:format', array('action' => 'ApiUserFriends', 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); - $m->connect('api/statuses/followers.:format', - array('action' => 'ApiUserFollowers', + $m->connect('api/statuses/friends.:format', + array('action' => 'ApiUserFriends', 'format' => '(xml|json)')); $m->connect('api/statuses/followers/:id.:format', @@ -428,26 +430,30 @@ class Router 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); - $m->connect('api/statuses/show.:format', - array('action' => 'ApiStatusesShow', - 'format' => '(xml|json|atom)')); + $m->connect('api/statuses/followers.:format', + array('action' => 'ApiUserFollowers', + 'format' => '(xml|json)')); $m->connect('api/statuses/show/:id.:format', array('action' => 'ApiStatusesShow', 'id' => '[0-9]+', 'format' => '(xml|json|atom)')); + $m->connect('api/statuses/show.:format', + array('action' => 'ApiStatusesShow', + 'format' => '(xml|json|atom)')); + $m->connect('api/statuses/update.:format', array('action' => 'ApiStatusesUpdate', 'format' => '(xml|json)')); - $m->connect('api/statuses/destroy.:format', + $m->connect('api/statuses/destroy/:id.:format', array('action' => 'ApiStatusesDestroy', + 'id' => '[0-9]+', 'format' => '(xml|json)')); - $m->connect('api/statuses/destroy/:id.:format', + $m->connect('api/statuses/destroy.:format', array('action' => 'ApiStatusesDestroy', - 'id' => '[0-9]+', 'format' => '(xml|json)')); $m->connect('api/statuses/retweet/:id.:format', @@ -460,17 +466,60 @@ class Router 'id' => '[0-9]+', 'format' => '(xml|json)')); - // users + // START qvitter API additions - $m->connect('api/users/show.:format', - array('action' => 'ApiUserShow', + $m->connect('api/statuses/favs/:id.:format', + array('action' => 'ApiStatusesFavs', + 'id' => '[0-9]+', + 'format' => '(xml|json)')); + + $m->connect('api/attachment/:id.:format', + array('action' => 'ApiAttachment', + 'id' => '[0-9]+', + 'format' => '(xml|json)')); + + $m->connect('api/checkhub.:format', + array('action' => 'ApiCheckHub', + 'format' => '(xml|json)')); + + $m->connect('api/externalprofile/show.:format', + array('action' => 'ApiExternalProfileShow', + 'format' => '(xml|json)')); + + $m->connect('api/statusnet/groups/admins/:id.:format', + array('action' => 'ApiGroupAdmins', + 'id' => Nickname::INPUT_FMT, + 'format' => '(xml|json)')); + + $m->connect('api/account/update_link_color.:format', + array('action' => 'ApiAccountUpdateLinkColor', + 'format' => '(xml|json)')); + + $m->connect('api/account/update_background_color.:format', + array('action' => 'ApiAccountUpdateBackgroundColor', + 'format' => '(xml|json)')); + + $m->connect('api/account/register.:format', + array('action' => 'ApiAccountRegister', + 'format' => '(xml|json)')); + + $m->connect('api/check_nickname.:format', + array('action' => 'ApiCheckNickname', 'format' => '(xml|json)')); + // END qvitter API additions + + // users + $m->connect('api/users/show/:id.:format', array('action' => 'ApiUserShow', 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); + $m->connect('api/users/show.:format', + array('action' => 'ApiUserShow', + 'format' => '(xml|json)')); + $m->connect('api/users/profile_image/:screen_name.:format', array('action' => 'ApiUserProfileImage', 'screen_name' => Nickname::DISPLAY_FMT, @@ -501,17 +550,13 @@ class Router array('action' => 'ApiFriendshipsExists', 'format' => '(xml|json)')); - $m->connect('api/friendships/create.:format', + $m->connect('api/friendships/create/:id.:format', array('action' => 'ApiFriendshipsCreate', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); - $m->connect('api/friendships/destroy.:format', - array('action' => 'ApiFriendshipsDestroy', - 'format' => '(xml|json)')); - - $m->connect('api/friendships/create/:id.:format', + $m->connect('api/friendships/create.:format', array('action' => 'ApiFriendshipsCreate', - 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); $m->connect('api/friendships/destroy/:id.:format', @@ -519,6 +564,10 @@ class Router 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); + $m->connect('api/friendships/destroy.:format', + array('action' => 'ApiFriendshipsDestroy', + 'format' => '(xml|json)')); + // Social graph $m->connect('api/friends/ids/:id.:format', @@ -561,7 +610,15 @@ class Router // favorites - $m->connect('api/favorites.:format', + $m->connect('api/favorites/create.:format', + array('action' => 'ApiFavoriteCreate', + 'format' => '(xml|json)')); + + $m->connect('api/favorites/destroy.:format', + array('action' => 'ApiFavoriteDestroy', + 'format' => '(xml|json)')); + + $m->connect('api/favorites/list.:format', array('action' => 'ApiTimelineFavorites', 'format' => '(xml|json|rss|atom|as)')); @@ -570,6 +627,10 @@ class Router 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom|as)')); + $m->connect('api/favorites.:format', + array('action' => 'ApiTimelineFavorites', + 'format' => '(xml|json|rss|atom|as)')); + $m->connect('api/favorites/create/:id.:format', array('action' => 'ApiFavoriteCreate', 'id' => '[0-9]+', @@ -579,25 +640,27 @@ class Router array('action' => 'ApiFavoriteDestroy', 'id' => '[0-9]+', 'format' => '(xml|json)')); - // blocks - $m->connect('api/blocks/create.:format', - array('action' => 'ApiBlockCreate', - 'format' => '(xml|json)')); + // blocks $m->connect('api/blocks/create/:id.:format', array('action' => 'ApiBlockCreate', 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); - $m->connect('api/blocks/destroy.:format', - array('action' => 'ApiBlockDestroy', + $m->connect('api/blocks/create.:format', + array('action' => 'ApiBlockCreate', 'format' => '(xml|json)')); $m->connect('api/blocks/destroy/:id.:format', array('action' => 'ApiBlockDestroy', 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); + + $m->connect('api/blocks/destroy.:format', + array('action' => 'ApiBlockDestroy', + 'format' => '(xml|json)')); + // help $m->connect('api/help/test.:format', @@ -607,21 +670,21 @@ class Router // statusnet $m->connect('api/statusnet/version.:format', - array('action' => 'ApiStatusnetVersion', + array('action' => 'ApiGNUsocialVersion', 'format' => '(xml|json)')); $m->connect('api/statusnet/config.:format', - array('action' => 'ApiStatusnetConfig', + array('action' => 'ApiGNUsocialConfig', 'format' => '(xml|json)')); - // For older methods, we provide "laconica" base action + // For our current software name, we provide "gnusocial" base action - $m->connect('api/laconica/version.:format', - array('action' => 'ApiStatusnetVersion', + $m->connect('api/gnusocial/version.:format', + array('action' => 'ApiGNUsocialVersion', 'format' => '(xml|json)')); - $m->connect('api/laconica/config.:format', - array('action' => 'ApiStatusnetConfig', + $m->connect('api/gnusocial/config.:format', + array('action' => 'ApiGNUsocialConfig', 'format' => '(xml|json)')); // Groups and tags are newer than 0.8.1 so no backward-compatibility @@ -635,57 +698,57 @@ class Router 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom|as)')); - $m->connect('api/statusnet/groups/show.:format', + $m->connect('api/statusnet/groups/show/:id.:format', array('action' => 'ApiGroupShow', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); - $m->connect('api/statusnet/groups/show/:id.:format', + $m->connect('api/statusnet/groups/show.:format', array('action' => 'ApiGroupShow', - 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); - $m->connect('api/statusnet/groups/join.:format', + $m->connect('api/statusnet/groups/join/:id.:format', array('action' => 'ApiGroupJoin', 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); - $m->connect('api/statusnet/groups/join/:id.:format', + $m->connect('api/statusnet/groups/join.:format', array('action' => 'ApiGroupJoin', 'format' => '(xml|json)')); - $m->connect('api/statusnet/groups/leave.:format', + $m->connect('api/statusnet/groups/leave/:id.:format', array('action' => 'ApiGroupLeave', - 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); - $m->connect('api/statusnet/groups/leave/:id.:format', + $m->connect('api/statusnet/groups/leave.:format', array('action' => 'ApiGroupLeave', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); $m->connect('api/statusnet/groups/is_member.:format', array('action' => 'ApiGroupIsMember', 'format' => '(xml|json)')); - $m->connect('api/statusnet/groups/list.:format', + $m->connect('api/statusnet/groups/list/:id.:format', array('action' => 'ApiGroupList', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom)')); - $m->connect('api/statusnet/groups/list/:id.:format', + $m->connect('api/statusnet/groups/list.:format', array('action' => 'ApiGroupList', - 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json|rss|atom)')); $m->connect('api/statusnet/groups/list_all.:format', array('action' => 'ApiGroupListAll', 'format' => '(xml|json|rss|atom)')); - $m->connect('api/statusnet/groups/membership.:format', + $m->connect('api/statusnet/groups/membership/:id.:format', array('action' => 'ApiGroupMembership', + 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); - $m->connect('api/statusnet/groups/membership/:id.:format', + $m->connect('api/statusnet/groups/membership.:format', array('action' => 'ApiGroupMembership', - 'id' => Nickname::INPUT_FMT, 'format' => '(xml|json)')); $m->connect('api/statusnet/groups/create.:format', @@ -703,6 +766,9 @@ class Router 'format' => '(xml|json|rss|atom|as)')); // Lists (people tags) + $m->connect('api/lists/list.:format', + array('action' => 'ApiListSubscriptions', + 'format' => '(xml|json)')); $m->connect('api/lists/memberships.:format', array('action' => 'ApiListMemberships', @@ -721,13 +787,9 @@ class Router array('action' => 'ApiListSubscriptions', 'user' => '[a-zA-Z0-9]+', 'format' => '(xml|json)')); - $m->connect('api/lists.:format', - array('action' => 'ApiLists', - 'format' => '(xml|json)')); - $m->connect('api/:user/lists.:format', + $m->connect('api/lists.:format', array('action' => 'ApiLists', - 'user' => '[a-zA-Z0-9]+', 'format' => '(xml|json)')); $m->connect('api/:user/lists/:id.:format', @@ -736,41 +798,47 @@ class Router 'id' => '[a-zA-Z0-9]+', 'format' => '(xml|json)')); + $m->connect('api/:user/lists.:format', + array('action' => 'ApiLists', + 'user' => '[a-zA-Z0-9]+', + 'format' => '(xml|json)')); + $m->connect('api/:user/lists/:id/statuses.:format', array('action' => 'ApiTimelineList', 'user' => '[a-zA-Z0-9]+', 'id' => '[a-zA-Z0-9]+', 'format' => '(xml|json|rss|atom)')); - $m->connect('api/:user/:list_id/members.:format', - array('action' => 'ApiListMembers', + $m->connect('api/:user/:list_id/members/:id.:format', + array('action' => 'ApiListMember', 'user' => '[a-zA-Z0-9]+', 'list_id' => '[a-zA-Z0-9]+', + 'id' => '[a-zA-Z0-9]+', 'format' => '(xml|json)')); - $m->connect('api/:user/:list_id/subscribers.:format', - array('action' => 'ApiListSubscribers', + $m->connect('api/:user/:list_id/members.:format', + array('action' => 'ApiListMembers', 'user' => '[a-zA-Z0-9]+', 'list_id' => '[a-zA-Z0-9]+', 'format' => '(xml|json)')); - $m->connect('api/:user/:list_id/members/:id.:format', - array('action' => 'ApiListMember', + $m->connect('api/:user/:list_id/subscribers/:id.:format', + array('action' => 'ApiListSubscriber', 'user' => '[a-zA-Z0-9]+', 'list_id' => '[a-zA-Z0-9]+', 'id' => '[a-zA-Z0-9]+', 'format' => '(xml|json)')); - $m->connect('api/:user/:list_id/subscribers/:id.:format', - array('action' => 'ApiListSubscriber', + $m->connect('api/:user/:list_id/subscribers.:format', + array('action' => 'ApiListSubscribers', 'user' => '[a-zA-Z0-9]+', 'list_id' => '[a-zA-Z0-9]+', - 'id' => '[a-zA-Z0-9]+', 'format' => '(xml|json)')); // Tags $m->connect('api/statusnet/tags/timeline/:tag.:format', array('action' => 'ApiTimelineTag', + 'tag' => self::REGEX_TAG, 'format' => '(xml|json|rss|atom|as)')); // media related @@ -778,6 +846,10 @@ class Router 'api/statusnet/media/upload', array('action' => 'ApiMediaUpload') ); + $m->connect( + 'api/statuses/update_with_media.json', + array('action' => 'ApiMediaUpload') + ); // search $m->connect('api/search.atom', array('action' => 'ApiSearchAtom')); @@ -785,23 +857,22 @@ class Router $m->connect('api/trends.json', array('action' => 'ApiTrends')); $m->connect('api/oauth/request_token', - array('action' => 'ApiOauthRequestToken')); + array('action' => 'ApiOAuthRequestToken')); $m->connect('api/oauth/access_token', - array('action' => 'ApiOauthAccessToken')); + array('action' => 'ApiOAuthAccessToken')); $m->connect('api/oauth/authorize', - array('action' => 'ApiOauthAuthorize')); + array('action' => 'ApiOAuthAuthorize')); // Admin $m->connect('panel/site', array('action' => 'siteadminpanel')); $m->connect('panel/user', array('action' => 'useradminpanel')); - $m->connect('panel/access', array('action' => 'accessadminpanel')); + $m->connect('panel/access', array('action' => 'accessadminpanel')); $m->connect('panel/paths', array('action' => 'pathsadminpanel')); $m->connect('panel/sessions', array('action' => 'sessionsadminpanel')); $m->connect('panel/sitenotice', array('action' => 'sitenoticeadminpanel')); - $m->connect('panel/snapshot', array('action' => 'snapshotadminpanel')); $m->connect('panel/license', array('action' => 'licenseadminpanel')); $m->connect('panel/plugins', array('action' => 'pluginsadminpanel')); @@ -816,6 +887,22 @@ class Router array('action' => 'getfile'), array('filename' => '[A-Za-z0-9._-]+')); + // Common people-tag stuff + + $m->connect('peopletag/:tag', array('action' => 'peopletag', + 'tag' => self::REGEX_TAG)); + + $m->connect('selftag/:tag', array('action' => 'selftag', + 'tag' => self::REGEX_TAG)); + + $m->connect('main/addpeopletag', array('action' => 'addpeopletag')); + + $m->connect('main/removepeopletag', array('action' => 'removepeopletag')); + + $m->connect('main/profilecompletion', array('action' => 'profilecompletion')); + + $m->connect('main/peopletagautocomplete', array('action' => 'peopletagautocomplete')); + // In the "root" if (common_config('singleuser', 'enabled')) { @@ -824,7 +911,7 @@ class Router foreach (array('subscriptions', 'subscribers', 'all', 'foaf', 'replies', - 'microsummary', 'hcard') as $a) { + 'microsummary') as $a) { $m->connect($a, array('action' => $a, 'nickname' => $nickname)); @@ -857,10 +944,13 @@ class Router array('action' => 'showfavorites', 'nickname' => $nickname)); + $m->connect('avatar', + array('action' => 'avatarbynickname', + 'nickname' => $nickname)); $m->connect('avatar/:size', array('action' => 'avatarbynickname', 'nickname' => $nickname), - array('size' => '(original|96|48|24)')); + array('size' => '(|original|\d+)')); $m->connect('tag/:tag/rss', array('action' => 'userrss', @@ -879,6 +969,57 @@ class Router $m->connect('', array('action' => 'showstream', 'nickname' => $nickname)); + + // peopletags + + $m->connect('peopletags', + array('action' => 'peopletagsbyuser')); + + $m->connect('peopletags/private', + array('action' => 'peopletagsbyuser', + 'private' => 1)); + + $m->connect('peopletags/public', + array('action' => 'peopletagsbyuser', + 'public' => 1)); + + $m->connect('othertags', + array('action' => 'peopletagsforuser')); + + $m->connect('peopletagsubscriptions', + array('action' => 'peopletagsubscriptions')); + + $m->connect('all/:tag/subscribers', + array('action' => 'peopletagsubscribers', + 'tag' => self::REGEX_TAG)); + + $m->connect('all/:tag/tagged', + array('action' => 'peopletagged', + 'tag' => self::REGEX_TAG)); + + $m->connect('all/:tag/edit', + array('action' => 'editpeopletag', + 'tag' => self::REGEX_TAG)); + + foreach(array('subscribe', 'unsubscribe') as $v) { + $m->connect('peopletag/:id/'.$v, + array('action' => $v.'peopletag', + 'id' => '[0-9]{1,64}')); + } + $m->connect('user/:tagger_id/profiletag/:id/id', + array('action' => 'profiletagbyid', + 'tagger_id' => '[0-9]+', + 'id' => '[0-9]+')); + + $m->connect('all/:tag', + array('action' => 'showprofiletag', + 'tag' => self::REGEX_TAG)); + + foreach (array('subscriptions', 'subscribers') as $a) { + $m->connect($a.'/:tag', + array('action' => $a), + array('tag' => self::REGEX_TAG)); + } } else { $m->connect('', array('action' => 'public')); $m->connect('rss', array('action' => 'publicrss')); @@ -892,7 +1033,7 @@ class Router foreach (array('subscriptions', 'subscribers', 'nudge', 'all', 'foaf', 'replies', - 'inbox', 'outbox', 'microsummary', 'hcard') as $a) { + 'inbox', 'outbox', 'microsummary') as $a) { $m->connect(':nickname/'.$a, array('action' => $a), array('nickname' => Nickname::DISPLAY_FMT)); @@ -903,22 +1044,6 @@ class Router // people tags - $m->connect('peopletags', array('action' => 'publicpeopletagcloud')); - - $m->connect('peopletag/:tag', array('action' => 'peopletag', - 'tag' => self::REGEX_TAG)); - - $m->connect('selftag/:tag', array('action' => 'selftag', - 'tag' => self::REGEX_TAG)); - - $m->connect('main/addpeopletag', array('action' => 'addpeopletag')); - - $m->connect('main/removepeopletag', array('action' => 'removepeopletag')); - - $m->connect('main/profilecompletion', array('action' => 'profilecompletion')); - - $m->connect('main/peopletagautocomplete', array('action' => 'peopletagautocomplete')); - $m->connect(':nickname/peopletags', array('action' => 'peopletagsbyuser', 'nickname' => Nickname::DISPLAY_FMT)); @@ -994,9 +1119,12 @@ class Router array('action' => 'showfavorites'), array('nickname' => Nickname::DISPLAY_FMT)); + $m->connect(':nickname/avatar', + array('action' => 'avatarbynickname'), + array('nickname' => Nickname::DISPLAY_FMT)); $m->connect(':nickname/avatar/:size', array('action' => 'avatarbynickname'), - array('size' => '(original|96|48|24)', + array('size' => '(|original|\d+)', 'nickname' => Nickname::DISPLAY_FMT)); $m->connect(':nickname/tag/:tag/rss', @@ -1016,6 +1144,10 @@ class Router $m->connect(':nickname', array('action' => 'showstream'), array('nickname' => Nickname::DISPLAY_FMT)); + + $m->connect(':nickname/', + array('action' => 'showstream'), + array('nickname' => Nickname::DISPLAY_FMT)); } // AtomPub API