]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Merge branch 'master' of gitorious.org:statusnet/mainline into 0.9.x
authorBrion Vibber <brion@pobox.com>
Wed, 1 Dec 2010 00:34:52 +0000 (16:34 -0800)
committerBrion Vibber <brion@pobox.com>
Wed, 1 Dec 2010 00:34:52 +0000 (16:34 -0800)
Conflicts:
lib/router.php

1  2 
index.php
lib/router.php

diff --combined index.php
index b060a3d52ac9ec9c60214702bc2a2c1b63dd63a8,9501e2275da6d610b9263bcb5a9e911e721d64de..049d46afceea1ff567956e7bdaaed50d76427da8
+++ b/index.php
@@@ -189,7 -189,7 +189,7 @@@ function checkMirror($action_obj, $args
  
  function isLoginAction($action)
  {
 -    static $loginActions =  array('login', 'recoverpassword', 'api', 'doc', 'register', 'publicxrds', 'otp', 'opensearch', 'rsd');
 +    static $loginActions =  array('login', 'recoverpassword', 'api', 'doc', 'register', 'publicxrds', 'otp', 'opensearch', 'rsd', 'hostmeta');
  
      $login = null;
  
@@@ -272,11 -272,7 +272,7 @@@ function main(
          return;
      }
  
-     // Note the order here: arguments from the URL mapper will
-     // override request params that have been sent. This ensures
-     // that for instance an action parameter can't be overridden
-     // with an arbitrary action class.
-     $args = array_merge($_REQUEST, $args);
+     $args = array_merge($args, $_REQUEST);
  
      Event::handle('ArgsInitialize', array(&$args));
  
diff --combined lib/router.php
index 9640ec1e042afacd47d4be1277306e8201fed758,7272a96904ba786d81977b1b49c9a3c88b4582df..a0ea996ecf747ca4e4f9cf7018f78324ce6bbc16
@@@ -128,12 -128,13 +128,13 @@@ class Route
      {
          if (empty($this->m)) {
              $k = self::cacheKey();
-             $m = Cache::get($k);
+             $c = Cache::instance();
+             $m = $c->get($k);
              if (!empty($m)) {
                  $this->m = $m;
              } else {
                  $this->m = $this->initialize();
-                 Cache::set($k, $this->m);
+                 $c->set($k, $this->m);
              }
          }
      }
      static function cacheKey()
      {
          $plugins     = StatusNet::getActivePlugins();
-       $names       = array();
+         $names       = array();
        
-       foreach ($plugins as $plugin) {
-           $names[] = $plugin[0];
-       }
+         foreach ($plugins as $plugin) {
+             $names[] = $plugin[0];
+         }
  
-       $names = array_unique($names);
-       asort($names);
+         $names = array_unique($names);
+         asort($names);
  
-       // Unique enough.
+         // Unique enough.
        
-       $uniq = crc32(implode(',', $names));
+         $uniq = crc32(implode(',', $names));
        
          return Cache::key('router:'.STATUSNET_VERSION.':'.$uniq);
      }
  
              $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
  
              $m->connect('notice/new', array('action' => 'newnotice'));
              $m->connect('notice/new?replyto=:replyto',
                          array('action' => 'newnotice'),
 -                        array('replyto' => '[A-Za-z0-9_-]+'));
 +                        array('replyto' => Nickname::DISPLAY_FMT));
              $m->connect('notice/new?replyto=:replyto&inreplyto=:inreplyto',
                          array('action' => 'newnotice'),
 -                        array('replyto' => '[A-Za-z0-9_-]+'),
 +                        array('replyto' => Nickname::DISPLAY_FMT),
                          array('inreplyto' => '[0-9]+'));
  
              $m->connect('notice/:notice/file',
                          array('id' => '[0-9]+'));
  
              $m->connect('message/new', array('action' => 'newmessage'));
 -            $m->connect('message/new?to=:to', array('action' => 'newmessage'), array('to' => '[A-Za-z0-9_-]+'));
 +            $m->connect('message/new?to=:to', array('action' => 'newmessage'), array('to' => Nickname::DISPLAY_FMT));
              $m->connect('message/:message',
                          array('action' => 'showmessage'),
                          array('message' => '[0-9]+'));
              foreach (array('edit', 'join', 'leave', 'delete') as $v) {
                  $m->connect('group/:nickname/'.$v,
                              array('action' => $v.'group'),
 -                            array('nickname' => '[a-zA-Z0-9]+'));
 +                            array('nickname' => Nickname::DISPLAY_FMT));
                  $m->connect('group/:id/id/'.$v,
                              array('action' => $v.'group'),
                              array('id' => '[0-9]+'));
              foreach (array('members', 'logo', 'rss', 'designsettings') as $n) {
                  $m->connect('group/:nickname/'.$n,
                              array('action' => 'group'.$n),
 -                            array('nickname' => '[a-zA-Z0-9]+'));
 +                            array('nickname' => Nickname::DISPLAY_FMT));
              }
  
              $m->connect('group/:nickname/foaf',
                          array('action' => 'foafgroup'),
 -                        array('nickname' => '[a-zA-Z0-9]+'));
 +                        array('nickname' => Nickname::DISPLAY_FMT));
  
              $m->connect('group/:nickname/blocked',
                          array('action' => 'blockedfromgroup'),
 -                        array('nickname' => '[a-zA-Z0-9]+'));
 +                        array('nickname' => Nickname::DISPLAY_FMT));
  
              $m->connect('group/:nickname/makeadmin',
                          array('action' => 'makeadmin'),
 -                        array('nickname' => '[a-zA-Z0-9]+'));
 +                        array('nickname' => Nickname::DISPLAY_FMT));
  
              $m->connect('group/:id/id',
                          array('action' => 'groupbyid'),
  
              $m->connect('group/:nickname',
                          array('action' => 'showgroup'),
 -                        array('nickname' => '[a-zA-Z0-9]+'));
 +                        array('nickname' => Nickname::DISPLAY_FMT));
  
              $m->connect('group/', array('action' => 'groups'));
              $m->connect('group', array('action' => 'groups'));
  
              $m->connect('api/statuses/friends_timeline/:id.:format',
                          array('action' => 'ApiTimelineFriends',
 -                              'id' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_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' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_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' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_FMT,
                                'format' => '(xml|json|rss|atom)'));
  
              $m->connect('api/statuses/mentions.:format',
  
              $m->connect('api/statuses/mentions/:id.:format',
                          array('action' => 'ApiTimelineMentions',
 -                              'id' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_FMT,
                                'format' => '(xml|json|rss|atom)'));
  
              $m->connect('api/statuses/replies.:format',
  
              $m->connect('api/statuses/replies/:id.:format',
                          array('action' => 'ApiTimelineMentions',
 -                              'id' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_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' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_FMT,
                                'format' => '(xml|json)'));
  
              $m->connect('api/statuses/followers.:format',
  
              $m->connect('api/statuses/followers/:id.:format',
                          array('action' => 'ApiUserFollowers',
 -                              'id' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_FMT,
                                'format' => '(xml|json)'));
  
              $m->connect('api/statuses/show.:format',
                          array('action' => 'ApiStatusesShow',
 -                              'format' => '(xml|json)'));
 +                              'format' => '(xml|json|atom)'));
  
              $m->connect('api/statuses/show/:id.:format',
                          array('action' => 'ApiStatusesShow',
                                'id' => '[0-9]+',
 -                              'format' => '(xml|json)'));
 +                              'format' => '(xml|json|atom)'));
  
              $m->connect('api/statuses/update.:format',
                          array('action' => 'ApiStatusesUpdate',
  
              $m->connect('api/users/show/:id.:format',
                          array('action' => 'ApiUserShow',
 -                              'id' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_FMT,
                                'format' => '(xml|json)'));
  
              // direct messages
  
              $m->connect('api/friendships/create/:id.:format',
                          array('action' => 'ApiFriendshipsCreate',
 -                              'id' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_FMT,
                                'format' => '(xml|json)'));
  
              $m->connect('api/friendships/destroy/:id.:format',
                          array('action' => 'ApiFriendshipsDestroy',
 -                              'id' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_FMT,
                                'format' => '(xml|json)'));
  
              // Social graph
  
              $m->connect('api/favorites/:id.:format',
                          array('action' => 'ApiTimelineFavorites',
 -                              'id' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_FMT,
                                'format' => '(xml|json|rss|atom)'));
  
              $m->connect('api/favorites/create/:id.:format',
                          array('action' => 'ApiFavoriteCreate',
 -                              'id' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_FMT,
                                'format' => '(xml|json)'));
  
              $m->connect('api/favorites/destroy/:id.:format',
                          array('action' => 'ApiFavoriteDestroy',
 -                              'id' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_FMT,
                                'format' => '(xml|json)'));
              // blocks
  
  
              $m->connect('api/blocks/create/:id.:format',
                          array('action' => 'ApiBlockCreate',
 -                              'id' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_FMT,
                                'format' => '(xml|json)'));
  
              $m->connect('api/blocks/destroy.:format',
  
              $m->connect('api/blocks/destroy/:id.:format',
                          array('action' => 'ApiBlockDestroy',
 -                              'id' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_FMT,
                                'format' => '(xml|json)'));
              // help
  
  
              $m->connect('api/statusnet/groups/timeline/:id.:format',
                          array('action' => 'ApiTimelineGroup',
 -                              'id' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_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' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_FMT,
                                'format' => '(xml|json)'));
  
              $m->connect('api/statusnet/groups/join.:format',
                          array('action' => 'ApiGroupJoin',
 -                              'id' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_FMT,
                                'format' => '(xml|json)'));
  
              $m->connect('api/statusnet/groups/join/:id.:format',
  
              $m->connect('api/statusnet/groups/leave.:format',
                          array('action' => 'ApiGroupLeave',
 -                              'id' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_FMT,
                                'format' => '(xml|json)'));
  
              $m->connect('api/statusnet/groups/leave/:id.:format',
  
              $m->connect('api/statusnet/groups/list/:id.:format',
                          array('action' => 'ApiGroupList',
 -                              'id' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_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' => '[a-zA-Z0-9]+',
 +                              'id' => Nickname::DISPLAY_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'));
                                 'replies', 'inbox', 'outbox', 'microsummary', 'hcard') as $a) {
                      $m->connect(':nickname/'.$a,
                                  array('action' => $a),
 -                                array('nickname' => '[a-zA-Z0-9]{1,64}'));
 +                                array('nickname' => Nickname::DISPLAY_FMT));
                  }
  
                  foreach (array('subscriptions', 'subscribers') as $a) {
                      $m->connect(':nickname/'.$a.'/:tag',
                                  array('action' => $a),
                                  array('tag' => '[a-zA-Z0-9]+',
 -                                      'nickname' => '[a-zA-Z0-9]{1,64}'));
 +                                      'nickname' => Nickname::DISPLAY_FMT));
                  }
  
                  foreach (array('rss', 'groups') as $a) {
                      $m->connect(':nickname/'.$a,
                                  array('action' => 'user'.$a),
 -                                array('nickname' => '[a-zA-Z0-9]{1,64}'));
 +                                array('nickname' => Nickname::DISPLAY_FMT));
                  }
  
                  foreach (array('all', 'replies', 'favorites') as $a) {
                      $m->connect(':nickname/'.$a.'/rss',
                                  array('action' => $a.'rss'),
 -                                array('nickname' => '[a-zA-Z0-9]{1,64}'));
 +                                array('nickname' => Nickname::DISPLAY_FMT));
                  }
  
                  $m->connect(':nickname/favorites',
                              array('action' => 'showfavorites'),
 -                            array('nickname' => '[a-zA-Z0-9]{1,64}'));
 +                            array('nickname' => Nickname::DISPLAY_FMT));
  
                  $m->connect(':nickname/avatar/:size',
                              array('action' => 'avatarbynickname'),
                              array('size' => '(original|96|48|24)',
 -                                  'nickname' => '[a-zA-Z0-9]{1,64}'));
 +                                  'nickname' => Nickname::DISPLAY_FMT));
  
                  $m->connect(':nickname/tag/:tag/rss',
                              array('action' => 'userrss'),
 -                            array('nickname' => '[a-zA-Z0-9]{1,64}'),
 +                            array('nickname' => Nickname::DISPLAY_FMT),
                              array('tag' => '[\pL\pN_\-\.]{1,64}'));
  
                  $m->connect(':nickname/tag/:tag',
                              array('action' => 'showstream'),
 -                            array('nickname' => '[a-zA-Z0-9]{1,64}'),
 +                            array('nickname' => Nickname::DISPLAY_FMT),
                              array('tag' => '[\pL\pN_\-\.]{1,64}'));
  
                  $m->connect(':nickname/rsd.xml',
                              array('action' => 'rsd'),
 -                            array('nickname' => '[a-zA-Z0-9]{1,64}'));
 +                            array('nickname' => Nickname::DISPLAY_FMT));
  
                  $m->connect(':nickname',
                              array('action' => 'showstream'),
 -                            array('nickname' => '[a-zA-Z0-9]{1,64}'));
 +                            array('nickname' => Nickname::DISPLAY_FMT));
              }
  
              // user stuff