| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | <?php | 
					
						
							|  |  |  | /** | 
					
						
							| 
									
										
										
										
											2009-08-25 18:12:20 -04:00
										 |  |  |  * StatusNet, the distributed open-source microblogging tool | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  |  * | 
					
						
							|  |  |  |  * URL routing utilities | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * PHP version 5 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * LICENCE: This program is free software: you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU Affero General Public License as published by | 
					
						
							|  |  |  |  * the Free Software Foundation, either version 3 of the License, or | 
					
						
							|  |  |  |  * (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |  * GNU Affero General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU Affero General Public License | 
					
						
							|  |  |  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @category  URL | 
					
						
							| 
									
										
										
										
											2009-08-25 18:12:20 -04:00
										 |  |  |  * @package   StatusNet | 
					
						
							| 
									
										
										
										
											2009-08-25 18:19:04 -04:00
										 |  |  |  * @author    Evan Prodromou <evan@status.net> | 
					
						
							| 
									
										
										
										
											2009-08-25 18:12:20 -04:00
										 |  |  |  * @copyright 2009 StatusNet, Inc. | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  |  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 | 
					
						
							| 
									
										
										
										
											2009-08-25 18:16:46 -04:00
										 |  |  |  * @link      http://status.net/ | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-14 02:22:47 +01:00
										 |  |  | if (!defined('GNUSOCIAL')) { exit(1); } | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * URL Router | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Cheap wrapper around Net_URL_Mapper | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @category URL | 
					
						
							| 
									
										
										
										
											2009-08-25 18:12:20 -04:00
										 |  |  |  * @package  StatusNet | 
					
						
							| 
									
										
										
										
											2009-08-25 18:19:04 -04:00
										 |  |  |  * @author   Evan Prodromou <evan@status.net> | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  |  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 | 
					
						
							| 
									
										
										
										
											2009-08-25 18:16:46 -04:00
										 |  |  |  * @link     http://status.net/ | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  |  */ | 
					
						
							|  |  |  | class Router | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2009-02-20 16:48:49 -05:00
										 |  |  |     var $m = null; | 
					
						
							| 
									
										
										
										
											2009-02-11 00:45:11 -05:00
										 |  |  |     static $inst = null; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-02-23 16:32:56 -08:00
										 |  |  |     const REGEX_TAG = '[^\/]+'; // [\pL\pN_\-\.]{1,64} better if we can do unicode regexes
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-11 00:45:11 -05:00
										 |  |  |     static function get() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         if (!Router::$inst) { | 
					
						
							|  |  |  |             Router::$inst = new Router(); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         return Router::$inst; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-30 14:18:29 -07:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Clear the global singleton instance for this class. | 
					
						
							|  |  |  |      * Needed to ensure reset when switching site configurations. | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     static function clear() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         Router::$inst = null; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  |     function __construct() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2010-11-30 09:57:02 -05:00
										 |  |  |         if (empty($this->m)) { | 
					
						
							| 
									
										
										
										
											2011-09-14 12:41:54 -04:00
										 |  |  |             $this->m = $this->initialize(); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:49:25 -05:00
										 |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-30 09:57:02 -05:00
										 |  |  |     /** | 
					
						
							|  |  |  |      * Create a unique hashkey for the router. | 
					
						
							| 
									
										
										
										
											2011-03-29 23:00:29 +02:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2010-11-30 09:57:02 -05:00
										 |  |  |      * The router's url map can change based on the version of the software | 
					
						
							|  |  |  |      * you're running and the plugins that are enabled. To avoid having bad routes | 
					
						
							|  |  |  |      * get stuck in the cache, the key includes a list of plugins and the software | 
					
						
							|  |  |  |      * version. | 
					
						
							| 
									
										
										
										
											2011-09-14 12:15:56 -04:00
										 |  |  |      *  | 
					
						
							|  |  |  |     * There can still be problems with a) differences in versions of the plugins and | 
					
						
							| 
									
										
										
										
											2010-11-30 09:57:02 -05:00
										 |  |  |      * b) people running code between official versions, but these tend to be more | 
					
						
							|  |  |  |      * sophisticated users who can grok what's going on and clear their caches. | 
					
						
							| 
									
										
										
										
											2011-03-29 23:00:29 +02:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2010-11-30 09:57:02 -05:00
										 |  |  |      * @return string cache key string that should uniquely identify a router | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2011-03-29 23:00:29 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-30 09:57:02 -05:00
										 |  |  |     static function cacheKey() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2010-12-16 13:42:10 -08:00
										 |  |  |         $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)); | 
					
						
							| 
									
										
										
										
											2010-11-30 09:57:02 -05:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2011-03-29 23:00:29 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-25 12:56:52 -04:00
										 |  |  |     function initialize() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2011-09-14 12:15:56 -04:00
										 |  |  |         $m = new URLMapper(); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |         if (Event::handle('StartInitializeRouter', [&$m])) { | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-09 23:01:50 +02:00
										 |  |  |             // top of the menu hierarchy, sometimes "Home"
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('', ['action' => 'top']); | 
					
						
							| 
									
										
										
										
											2015-07-09 23:01:50 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |             // public endpoints
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('robots.txt', ['action' => 'robotstxt']); | 
					
						
							| 
									
										
										
										
											2010-01-31 10:12:26 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('opensearch/people', | 
					
						
							|  |  |  |                         ['action' => 'opensearch', | 
					
						
							|  |  |  |                          'type' => 'people']); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('opensearch/notice', | 
					
						
							|  |  |  |                         ['action' => 'opensearch', | 
					
						
							|  |  |  |                          'type' => 'notice']); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             // docs
 | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('doc/:title', ['action' => 'doc']); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-08 17:20:25 -08:00
										 |  |  |             $m->connect('main/otp/:user_id/:token', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'otp'], | 
					
						
							|  |  |  |                         ['user_id' => '[0-9]+', | 
					
						
							|  |  |  |                          'token' => '.+']); | 
					
						
							| 
									
										
										
										
											2009-12-05 21:03:27 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-19 19:21:59 -04:00
										 |  |  |             // these take a code; before the main part
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             foreach (['register', 'confirmaddress', 'recoverpassword'] as $c) { | 
					
						
							|  |  |  |                 $m->connect('main/'.$c.'/:code', ['action' => $c]); | 
					
						
							| 
									
										
										
										
											2011-09-19 19:21:59 -04:00
										 |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Also need a block variant accepting ID on URL for mail links
 | 
					
						
							|  |  |  |             $m->connect('main/block/:profileid', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'block'], | 
					
						
							|  |  |  |                         ['profileid' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2011-09-19 19:21:59 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('main/sup/:seconds', | 
					
						
							|  |  |  |                         ['action' => 'sup'], | 
					
						
							|  |  |  |                         ['seconds' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2011-09-19 19:21:59 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             // main stuff is repetitive
 | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $main = ['login', 'logout', 'register', 'subscribe', | 
					
						
							|  |  |  |                      'unsubscribe', 'cancelsubscription', 'approvesub', | 
					
						
							|  |  |  |                      'confirmaddress', 'recoverpassword', | 
					
						
							|  |  |  |                      'invite', 'sup', | 
					
						
							|  |  |  |                      'block', 'unblock', 'subedit', | 
					
						
							|  |  |  |                      'groupblock', 'groupunblock', | 
					
						
							|  |  |  |                      'sandbox', 'unsandbox', | 
					
						
							|  |  |  |                      'silence', 'unsilence', | 
					
						
							|  |  |  |                      'grantrole', 'revokerole', | 
					
						
							|  |  |  |                      'deleteuser', | 
					
						
							|  |  |  |                      'geocode', | 
					
						
							|  |  |  |                      'version', | 
					
						
							|  |  |  |                      'backupaccount', | 
					
						
							|  |  |  |                      'deleteaccount', | 
					
						
							|  |  |  |                      'restoreaccount', | 
					
						
							|  |  |  |                      'top', | 
					
						
							|  |  |  |                      'public']; | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             foreach ($main as $a) { | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                 $m->connect('main/'.$a, ['action' => $a]); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2009-04-01 18:29:10 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('main/all', ['action' => 'networkpublic']); | 
					
						
							| 
									
										
										
										
											2015-01-21 23:45:49 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('main/tagprofile/:id', | 
					
						
							|  |  |  |                         ['action' => 'tagprofile'], | 
					
						
							|  |  |  |                         ['id' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2009-07-30 15:37:35 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('main/tagprofile', ['action' => 'tagprofile']); | 
					
						
							| 
									
										
										
										
											2011-09-19 19:21:59 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-29 16:01:25 -04:00
										 |  |  |             $m->connect('main/xrds', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'publicxrds']); | 
					
						
							| 
									
										
										
										
											2009-10-29 16:01:25 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             // settings
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             foreach (['profile', 'avatar', 'password', 'im', 'oauthconnections', | 
					
						
							|  |  |  |                            'oauthapps', 'email', 'sms', 'url'] as $s) { | 
					
						
							|  |  |  |                 $m->connect('settings/'.$s, ['action' => $s.'settings']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2010-01-10 21:35:46 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-24 10:14:45 -04:00
										 |  |  |             if (common_config('oldschool', 'enabled')) { | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                 $m->connect('settings/oldschool', ['action' => 'oldschoolsettings']); | 
					
						
							| 
									
										
										
										
											2011-09-24 10:14:45 -04:00
										 |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  |             $m->connect('settings/oauthapps/show/:id', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'showapplication'], | 
					
						
							|  |  |  |                         ['id' => '[0-9]+']); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  |             $m->connect('settings/oauthapps/new', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'newapplication']); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  |             $m->connect('settings/oauthapps/edit/:id', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'editapplication'], | 
					
						
							|  |  |  |                         ['id' => '[0-9]+']); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-02-02 06:26:03 +00:00
										 |  |  |             $m->connect('settings/oauthapps/delete/:id', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'deleteapplication'], | 
					
						
							|  |  |  |                         ['id' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             // search
 | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             foreach (['group', 'people', 'notice'] as $s) { | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |                 $m->connect('search/'.$s.'?q=:q', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => $s.'search'], | 
					
						
							|  |  |  |                             ['q' => '.+']); | 
					
						
							|  |  |  |                 $m->connect('search/'.$s, ['action' => $s.'search']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // 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.
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('search/notice/rss?q=:q', | 
					
						
							|  |  |  |                         ['action' => 'noticesearchrss'], | 
					
						
							|  |  |  |                         ['q' => '.+']); | 
					
						
							|  |  |  |             $m->connect('search/notice/rss', ['action' => 'noticesearchrss']); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-26 03:27:51 +01:00
										 |  |  |             foreach (['' => 'attachment', | 
					
						
							|  |  |  |                       '/view' => 'attachment_view', | 
					
						
							|  |  |  |                       '/download' => 'attachment_download', | 
					
						
							|  |  |  |                       '/thumbnail' => 'attachment_thumbnail'] as $postfix => $action) { | 
					
						
							| 
									
										
										
										
											2019-07-23 11:47:36 +01:00
										 |  |  |                 foreach (['filehash' => '[A-Za-z0-9._-]{64}', | 
					
						
							|  |  |  |                           'attachment' => '[0-9]+'] as $type => $match) { | 
					
						
							| 
									
										
										
										
											2019-06-26 03:27:51 +01:00
										 |  |  |                     $m->connect("attachment/:{$type}{$postfix}", | 
					
						
							|  |  |  |                                 ['action' => $action], | 
					
						
							|  |  |  |                                 [$type => $match]); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('notice/new?replyto=:replyto&inreplyto=:inreplyto', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'newnotice'], | 
					
						
							|  |  |  |                         ['replyto' => Nickname::DISPLAY_FMT, | 
					
						
							|  |  |  |                          'inreplyto' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:31:29 -04:00
										 |  |  |             $m->connect('notice/new?replyto=:replyto', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'newnotice'], | 
					
						
							|  |  |  |                         ['replyto' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2011-09-18 19:31:29 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('notice/new', ['action' => 'newnotice']); | 
					
						
							| 
									
										
										
										
											2011-09-18 19:31:29 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('notice/:notice', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'shownotice'], | 
					
						
							|  |  |  |                         ['notice' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2011-09-18 19:31:29 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-11 11:26:48 +02:00
										 |  |  |             $m->connect('notice/:notice/delete', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'deletenotice'], | 
					
						
							|  |  |  |                         ['notice' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |             // conversation
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('conversation/:id', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'conversation'], | 
					
						
							|  |  |  |                         ['id' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('user/:id', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'userbyid'], | 
					
						
							|  |  |  |                         ['id' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('tag/:tag/rss', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'tagrss'], | 
					
						
							|  |  |  |                         ['tag' => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('tag/:tag', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'tag'], | 
					
						
							|  |  |  |                         ['tag' => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |             // groups
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('group/new', ['action' => 'newgroup']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             foreach (['edit', 'join', 'leave', 'delete', 'cancel', 'approve'] as $v) { | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |                 $m->connect('group/:nickname/'.$v, | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => $v.'group'], | 
					
						
							|  |  |  |                             ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2010-02-25 13:02:08 -08:00
										 |  |  |                 $m->connect('group/:id/id/'.$v, | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => $v.'group'], | 
					
						
							|  |  |  |                             ['id' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             foreach (['members', 'logo', 'rss'] as $n) { | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |                 $m->connect('group/:nickname/'.$n, | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'group'.$n], | 
					
						
							|  |  |  |                             ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('group/:nickname/foaf', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'foafgroup'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('group/:nickname/blocked', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'blockedfromgroup'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2009-09-27 17:17:03 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('group/:nickname/makeadmin', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'makeadmin'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2009-09-30 10:22:26 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-21 16:40:10 -07:00
										 |  |  |             $m->connect('group/:nickname/members/pending', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'groupqueue'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2009-09-30 10:22:26 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('group/:id/id', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'groupbyid'], | 
					
						
							|  |  |  |                         ['id' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2009-09-30 10:22:26 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('group/:nickname', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'showgroup'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2009-09-23 13:45:51 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-29 22:59:18 -04:00
										 |  |  |             $m->connect('group/:nickname/', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'showgroup'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2011-09-29 22:59:18 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('group/', ['action' => 'groups']); | 
					
						
							|  |  |  |             $m->connect('group', ['action' => 'groups']); | 
					
						
							|  |  |  |             $m->connect('groups/', ['action' => 'groups']); | 
					
						
							|  |  |  |             $m->connect('groups', ['action' => 'groups']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |             // Twitter-compatible API
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // statuses API
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-12 23:36:33 -04:00
										 |  |  |             $m->connect('api', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'Redirect', | 
					
						
							|  |  |  |                          'nextAction' => 'doc', | 
					
						
							|  |  |  |                          'args' => ['title' => 'api']]); | 
					
						
							| 
									
										
										
										
											2010-10-12 23:36:33 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/statuses/public_timeline.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelinePublic'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-01-29 22:16:30 +01:00
										 |  |  |             // this is not part of the Twitter API. Also may require authentication depending on server config!
 | 
					
						
							|  |  |  |             $m->connect('api/statuses/networkpublic_timeline.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelineNetworkPublic'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2015-01-29 22:16:30 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/statuses/friends_timeline/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelineFriends'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2009-12-14 16:10:16 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statuses/friends_timeline.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelineFriends'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/statuses/home_timeline/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelineHome'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2009-09-30 17:08:52 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statuses/home_timeline.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelineHome'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2009-09-30 17:08:52 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/statuses/user_timeline/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelineUser'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statuses/user_timeline.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelineUser'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/statuses/mentions/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelineMentions'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statuses/mentions.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelineMentions'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/statuses/replies/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelineMentions'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statuses/replies.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelineMentions'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2014-01-26 23:57:27 +01:00
										 |  |  |   | 
					
						
							|  |  |  |             $m->connect('api/statuses/mentions_timeline/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelineMentions'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2014-01-26 23:57:27 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/statuses/mentions_timeline.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelineMentions'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/statuses/friends/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiUserFriends'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statuses/friends.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiUserFriends'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-01 17:35:28 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/statuses/followers/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiUserFollowers'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statuses/followers.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiUserFollowers'], | 
					
						
							|  |  |  |                          ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/statuses/show/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiStatusesShow'], | 
					
						
							|  |  |  |                         ['id' => '[0-9]+', | 
					
						
							|  |  |  |                          'format' => '(xml|json|atom)']); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statuses/show.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiStatusesShow'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json|atom)']); | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/statuses/update.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiStatusesUpdate'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json|atom)']); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statuses/destroy/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiStatusesDestroy'], | 
					
						
							|  |  |  |                         ['id' => '[0-9]+', | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statuses/destroy.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiStatusesDestroy'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-12-11 12:40:05 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-06 21:30:29 +02:00
										 |  |  |             // START qvitter API additions
 | 
					
						
							|  |  |  |              | 
					
						
							| 
									
										
										
										
											2013-10-07 19:56:57 +02:00
										 |  |  |             $m->connect('api/attachment/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiAttachment'], | 
					
						
							|  |  |  |                         ['id' => '[0-9]+', | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2013-10-06 21:30:29 +02:00
										 |  |  |              | 
					
						
							| 
									
										
										
										
											2013-10-07 19:56:57 +02:00
										 |  |  |             $m->connect('api/checkhub.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiCheckHub'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2013-10-06 21:30:29 +02:00
										 |  |  |              | 
					
						
							| 
									
										
										
										
											2013-10-07 19:56:57 +02:00
										 |  |  |             $m->connect('api/externalprofile/show.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiExternalProfileShow'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2013-10-06 21:30:29 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/statusnet/groups/admins/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGroupAdmins'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2013-10-06 21:30:29 +02:00
										 |  |  |              | 
					
						
							| 
									
										
										
										
											2013-10-07 19:56:57 +02:00
										 |  |  |             $m->connect('api/account/update_link_color.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiAccountUpdateLinkColor'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2013-10-06 21:30:29 +02:00
										 |  |  |                  | 
					
						
							| 
									
										
										
										
											2013-10-07 19:56:57 +02:00
										 |  |  |             $m->connect('api/account/update_background_color.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiAccountUpdateBackgroundColor'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2013-10-06 21:30:29 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-07 19:56:57 +02:00
										 |  |  |             $m->connect('api/account/register.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiAccountRegister'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2013-10-06 21:30:29 +02:00
										 |  |  |              | 
					
						
							| 
									
										
										
										
											2013-10-07 19:56:57 +02:00
										 |  |  |             $m->connect('api/check_nickname.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiCheckNickname'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2013-10-06 21:30:29 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |             // END qvitter API additions
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             // users
 | 
					
						
							| 
									
										
										
										
											2009-02-20 15:07:59 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/users/show/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiUserShow'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-12-01 10:02:22 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/users/show.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiUserShow'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-12-17 17:09:54 -08:00
										 |  |  |             $m->connect('api/users/profile_image/:screen_name.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiUserProfileImage'], | 
					
						
							|  |  |  |                         ['screen_name' => Nickname::DISPLAY_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2010-12-17 17:09:54 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             // friendships
 | 
					
						
							| 
									
										
										
										
											2009-10-05 10:04:35 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/friendships/show.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiFriendshipsShow'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-05 10:04:35 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/friendships/exists.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiFriendshipsExists'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/friendships/create/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiFriendshipsCreate'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-02-22 20:04:47 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/friendships/create.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiFriendshipsCreate'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-02-28 15:12:31 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/friendships/destroy/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiFriendshipsDestroy'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-02-22 20:04:47 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/friendships/destroy.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiFriendshipsDestroy'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             // Social graph
 | 
					
						
							| 
									
										
										
										
											2009-02-22 20:04:47 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/friends/ids/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiUserFriends', | 
					
						
							|  |  |  |                          'ids_only' => true], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/followers/ids/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiUserFollowers', | 
					
						
							|  |  |  |                          'ids_only' => true], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-05 17:10:30 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/friends/ids.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiUserFriends', | 
					
						
							|  |  |  |                          'ids_only' => true], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-05 17:10:30 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/followers/ids.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiUserFollowers', | 
					
						
							|  |  |  |                          'ids_only' => true], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-05 17:10:30 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             // account
 | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/account/verify_credentials.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiAccountVerifyCredentials'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-09 23:13:59 -08:00
										 |  |  |             $m->connect('api/account/update_profile.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiAccountUpdateProfile'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-11-09 23:13:59 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-04 21:00:26 -08:00
										 |  |  |             $m->connect('api/account/update_profile_image.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiAccountUpdateProfileImage'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-11-04 21:00:26 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-11-10 14:36:41 -08:00
										 |  |  |             $m->connect('api/account/update_delivery_device.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiAccountUpdateDeliveryDevice'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-11-10 14:36:41 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             // special case where verify_credentials is called w/out a format
 | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/account/verify_credentials', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiAccountVerifyCredentials']); | 
					
						
							| 
									
										
										
										
											2009-10-05 13:50:01 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/account/rate_limit_status.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiAccountRateLimitStatus'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-05 13:50:01 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             // blocks
 | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/blocks/create/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiBlockCreate'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-08 15:45:45 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/blocks/create.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiBlockCreate'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2010-10-22 13:51:28 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/blocks/destroy/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiBlockDestroy'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/blocks/destroy.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiBlockDestroy'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             // help
 | 
					
						
							| 
									
										
										
										
											2009-07-15 10:29:54 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/help/test.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiHelpTest'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             // statusnet
 | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/statusnet/version.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGNUsocialVersion'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-07-10 18:22:19 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/statusnet/config.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGNUsocialConfig'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-06 17:26:45 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-15 00:19:03 +02:00
										 |  |  |             // For our current software name, we provide "gnusocial" base action
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-15 00:19:03 +02:00
										 |  |  |             $m->connect('api/gnusocial/version.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGNUsocialVersion'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-15 00:19:03 +02:00
										 |  |  |             $m->connect('api/gnusocial/config.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGNUsocialConfig'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-08-27 09:34:32 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             // Groups and tags are newer than 0.8.1 so no backward-compatibility
 | 
					
						
							|  |  |  |             // necessary
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             // Groups
 | 
					
						
							|  |  |  |             //'list' has to be handled differently, as php will not allow a method to be named 'list'
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/statusnet/groups/timeline/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelineGroup'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/statusnet/groups/show/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGroupShow'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statusnet/groups/show.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGroupShow'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/statusnet/groups/join/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGroupJoin'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statusnet/groups/join.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGroupJoin'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/statusnet/groups/leave/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGroupLeave'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statusnet/groups/leave.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGroupLeave'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             $m->connect('api/statusnet/groups/is_member.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGroupIsMember'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statusnet/groups/list/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGroupList'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json|rss|atom)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statusnet/groups/list.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGroupList'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json|rss|atom)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/statusnet/groups/list_all.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGroupListAll'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json|rss|atom)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statusnet/groups/membership/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGroupMembership'], | 
					
						
							|  |  |  |                         ['id' => Nickname::INPUT_FMT, | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/statusnet/groups/membership.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGroupMembership'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/statusnet/groups/create.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGroupCreate'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2010-04-20 11:29:13 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/statusnet/groups/update/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiGroupProfileUpdate'], | 
					
						
							|  |  |  |                         ['id' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-07-15 12:49:52 -04:00
										 |  |  |                                | 
					
						
							|  |  |  |             $m->connect('api/statusnet/conversation/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'apiconversation'], | 
					
						
							|  |  |  |                         ['id' => '[0-9]+', | 
					
						
							|  |  |  |                          'format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2010-04-20 11:29:13 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-06 23:36:38 +05:30
										 |  |  |             // Lists (people tags)
 | 
					
						
							| 
									
										
										
										
											2014-01-26 23:57:27 +01:00
										 |  |  |             $m->connect('api/lists/list.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiListSubscriptions'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-03-06 23:36:38 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/lists/memberships.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiListMemberships'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-03-06 23:36:38 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/:user/lists/memberships.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiListMemberships'], | 
					
						
							|  |  |  |                         ['user' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-03-06 23:36:38 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/lists/subscriptions.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiListSubscriptions'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-03-06 23:36:38 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/:user/lists/subscriptions.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiListSubscriptions'], | 
					
						
							|  |  |  |                         ['user' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-03-06 23:36:38 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/lists.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiLists'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-03-06 23:36:38 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/:user/lists/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiList'], | 
					
						
							|  |  |  |                         ['user' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                          'id' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-03-06 23:36:38 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/:user/lists.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiLists'], | 
					
						
							|  |  |  |                         ['user' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-06 23:36:38 +05:30
										 |  |  |             $m->connect('api/:user/lists/:id/statuses.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelineList'], | 
					
						
							|  |  |  |                         ['user' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                          'id' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                          'format' => '(xml|json|rss|atom)']); | 
					
						
							| 
									
										
										
										
											2011-03-06 23:36:38 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/:user/:list_id/members/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiListMember'], | 
					
						
							|  |  |  |                         ['user' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                          'list_id' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                          'id' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-03-06 23:36:38 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/:user/:list_id/members.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiListMembers'], | 
					
						
							|  |  |  |                         ['user' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                         'list_id' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                         'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-03-06 23:36:38 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/:user/:list_id/subscribers/:id.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiListSubscriber'], | 
					
						
							|  |  |  |                         ['user' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                          'list_id' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                          'id' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-03-06 23:36:38 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-18 19:20:55 -04:00
										 |  |  |             $m->connect('api/:user/:list_id/subscribers.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiListSubscribers'], | 
					
						
							|  |  |  |                         ['user' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                          'list_id' => '[a-zA-Z0-9]+', | 
					
						
							|  |  |  |                          'format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2011-03-06 23:36:38 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             // Tags
 | 
					
						
							|  |  |  |             $m->connect('api/statusnet/tags/timeline/:tag.:format', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiTimelineTag'], | 
					
						
							|  |  |  |                         ['tag'    => self::REGEX_TAG, | 
					
						
							|  |  |  |                          'format' => '(xml|json|rss|atom|as)']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-03-15 22:10:32 +00:00
										 |  |  |             // media related
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('api/statusnet/media/upload', | 
					
						
							|  |  |  |                         ['action' => 'ApiMediaUpload']); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/statuses/update_with_media.json', | 
					
						
							|  |  |  |                         ['action' => 'ApiMediaUpload']); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-14 18:29:21 +01:00
										 |  |  |             // Twitter Media upload API v1.1
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('api/media/upload.:format', | 
					
						
							|  |  |  |                         ['action' => 'ApiMediaUpload'], | 
					
						
							|  |  |  |                         ['format' => '(xml|json)']); | 
					
						
							| 
									
										
										
										
											2010-03-15 22:10:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |             // search
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('api/search.atom', ['action' => 'ApiSearchAtom']); | 
					
						
							|  |  |  |             $m->connect('api/search.json', ['action' => 'ApiSearchJSON']); | 
					
						
							|  |  |  |             $m->connect('api/trends.json', ['action' => 'ApiTrends']); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  |             $m->connect('api/oauth/request_token', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiOAuthRequestToken']); | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/oauth/access_token', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiOAuthAccessToken']); | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/oauth/authorize', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiOAuthAuthorize']); | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |             // Admin
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('panel/site', ['action' => 'siteadminpanel']); | 
					
						
							|  |  |  |             $m->connect('panel/user', ['action' => 'useradminpanel']); | 
					
						
							|  |  |  |             $m->connect('panel/access', ['action' => 'accessadminpanel']); | 
					
						
							|  |  |  |             $m->connect('panel/paths', ['action' => 'pathsadminpanel']); | 
					
						
							|  |  |  |             $m->connect('panel/sessions', ['action' => 'sessionsadminpanel']); | 
					
						
							|  |  |  |             $m->connect('panel/sitenotice', ['action' => 'sitenoticeadminpanel']); | 
					
						
							|  |  |  |             $m->connect('panel/license', ['action' => 'licenseadminpanel']); | 
					
						
							| 
									
										
										
										
											2011-01-23 10:18:35 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('panel/plugins', ['action' => 'pluginsadminpanel']); | 
					
						
							| 
									
										
										
										
											2011-01-23 10:18:35 -05:00
										 |  |  |             $m->connect('panel/plugins/enable/:plugin', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'pluginenable'], | 
					
						
							|  |  |  |                         ['plugin' => '[A-Za-z0-9_]+']); | 
					
						
							| 
									
										
										
										
											2011-01-23 10:18:35 -05:00
										 |  |  |             $m->connect('panel/plugins/disable/:plugin', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'plugindisable'], | 
					
						
							|  |  |  |                         ['plugin' => '[A-Za-z0-9_]+']); | 
					
						
							| 
									
										
										
										
											2019-08-17 05:52:02 +01:00
										 |  |  |             $m->connect('panel/plugins/delete/:plugin', | 
					
						
							|  |  |  |                 ['action' => 'plugindelete'], | 
					
						
							|  |  |  |                 ['plugin' => '[A-Za-z0-9_]+']); | 
					
						
							| 
									
										
										
										
											2019-08-17 02:33:31 +01:00
										 |  |  |             $m->connect('panel/plugins/install', | 
					
						
							|  |  |  |                         ['action' => 'plugininstall']); | 
					
						
							| 
									
										
										
										
											2009-11-19 11:55:07 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  |             // Common people-tag stuff
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('peopletag/:tag', | 
					
						
							|  |  |  |                         ['action' => 'peopletag'], | 
					
						
							|  |  |  |                         ['tag'    => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('selftag/:tag', | 
					
						
							|  |  |  |                         ['action' => 'selftag'], | 
					
						
							|  |  |  |                         ['tag'    => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('main/addpeopletag', ['action' => 'addpeopletag']); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('main/removepeopletag', ['action' => 'removepeopletag']); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('main/profilecompletion', ['action' => 'profilecompletion']); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('main/peopletagautocomplete', ['action' => 'peopletagautocomplete']); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  |             // In the "root"
 | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  |             if (common_config('singleuser', 'enabled')) { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-12-06 12:39:09 -08:00
										 |  |  |                 $nickname = User::singleUserNickname(); | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                 foreach (['subscriptions', 'subscribers', 'all', 'foaf', 'replies'] as $a) { | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  |                     $m->connect($a, | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                                 ['action' => $a, | 
					
						
							|  |  |  |                                  'nickname' => $nickname]); | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  |                 } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                 foreach (['subscriptions', 'subscribers'] as $a) { | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  |                     $m->connect($a.'/:tag', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                                 ['action' => $a, | 
					
						
							|  |  |  |                                  'nickname' => $nickname], | 
					
						
							|  |  |  |                                 ['tag' => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  |                 } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-28 17:06:02 -07:00
										 |  |  |                 $m->connect('subscribers/pending', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'subqueue', | 
					
						
							|  |  |  |                              'nickname' => $nickname]); | 
					
						
							| 
									
										
										
										
											2011-03-28 17:06:02 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                 foreach (['rss', 'groups'] as $a) { | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  |                     $m->connect($a, | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                                 ['action' => 'user'.$a, | 
					
						
							|  |  |  |                                  'nickname' => $nickname]); | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  |                 } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                 foreach (['all', 'replies'] as $a) { | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  |                     $m->connect($a.'/rss', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                                 ['action' => $a.'rss', | 
					
						
							|  |  |  |                                  'nickname' => $nickname]); | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  |                 } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-01 11:37:59 +02:00
										 |  |  |                 $m->connect('avatar', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'avatarbynickname', | 
					
						
							|  |  |  |                              'nickname' => $nickname]); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  |                 $m->connect('avatar/:size', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'avatarbynickname', | 
					
						
							|  |  |  |                              'nickname' => $nickname], | 
					
						
							|  |  |  |                             ['size' => '(|original|\d+)']); | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 $m->connect('tag/:tag/rss', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'userrss', | 
					
						
							|  |  |  |                              'nickname' => $nickname], | 
					
						
							|  |  |  |                             ['tag' => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 $m->connect('tag/:tag', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'showstream', | 
					
						
							|  |  |  |                              'nickname' => $nickname], | 
					
						
							|  |  |  |                             ['tag' => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-31 15:16:59 -05:00
										 |  |  |                 $m->connect('rsd.xml', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'rsd', | 
					
						
							|  |  |  |                              'nickname' => $nickname]); | 
					
						
							| 
									
										
										
										
											2010-01-31 15:16:59 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  |                 // peopletags
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 $m->connect('peopletags', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'peopletagsbyuser']); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 $m->connect('peopletags/private', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'peopletagsbyuser', | 
					
						
							|  |  |  |                              'private' => 1]); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 $m->connect('peopletags/public', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'peopletagsbyuser', | 
					
						
							|  |  |  |                              'public' => 1]); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 $m->connect('othertags', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'peopletagsforuser']); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 $m->connect('peopletagsubscriptions', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'peopletagsubscriptions']); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 $m->connect('all/:tag/subscribers', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'peopletagsubscribers'], | 
					
						
							|  |  |  |                             ['tag' => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 $m->connect('all/:tag/tagged', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'peopletagged'], | 
					
						
							|  |  |  |                             ['tag' => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 $m->connect('all/:tag/edit', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'editpeopletag'], | 
					
						
							|  |  |  |                             ['tag' => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                 foreach (['subscribe', 'unsubscribe'] as $v) { | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  |                     $m->connect('peopletag/:id/'.$v, | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                                 ['action' => $v.'peopletag'], | 
					
						
							|  |  |  |                                 ['id' => '[0-9]{1,64}']); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  |                 } | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  |                 $m->connect('user/:tagger_id/profiletag/:id/id', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'profiletagbyid'], | 
					
						
							|  |  |  |                             ['tagger_id' => '[0-9]+', | 
					
						
							|  |  |  |                              'id' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 $m->connect('all/:tag', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'showprofiletag', | 
					
						
							|  |  |  |                              'tagger' => $nickname], | 
					
						
							|  |  |  |                             ['tag' => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                 foreach (['subscriptions', 'subscribers'] as $a) { | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  |                     $m->connect($a.'/:tag', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                                 ['action' => $a], | 
					
						
							|  |  |  |                                 ['tag' => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2011-09-29 12:29:12 -04:00
										 |  |  |                 } | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             $m->connect('rss', ['action' => 'publicrss']); | 
					
						
							|  |  |  |             $m->connect('featuredrss', ['action' => 'featuredrss']); | 
					
						
							|  |  |  |             $m->connect('featured/', ['action' => 'featured']); | 
					
						
							|  |  |  |             $m->connect('featured', ['action' => 'featured']); | 
					
						
							|  |  |  |             $m->connect('rsd.xml', ['action' => 'rsd']); | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             foreach (['subscriptions', 'subscribers', | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |                            'nudge', 'all', 'foaf', 'replies', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                            'inbox', 'outbox'] as $a) { | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |                 $m->connect(':nickname/'.$a, | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => $a], | 
					
						
							|  |  |  |                             ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |              | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             $m->connect(':nickname/subscribers/pending', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'subqueue'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-10 00:27:26 +02:00
										 |  |  |             // some targeted RSS 1.0 actions (extends TargetedRss10Action)
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             foreach (['all', 'replies'] as $a) { | 
					
						
							| 
									
										
										
										
											2015-07-10 00:27:26 +02:00
										 |  |  |                 $m->connect(':nickname/'.$a.'/rss', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => $a.'rss'], | 
					
						
							|  |  |  |                             ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2015-07-10 00:27:26 +02:00
										 |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             // people tags
 | 
					
						
							| 
									
										
										
										
											2011-03-07 00:43:31 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             $m->connect(':nickname/peopletags', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'peopletagsbyuser'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2011-03-07 00:43:31 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             $m->connect(':nickname/peopletags/private', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'peopletagsbyuser', | 
					
						
							|  |  |  |                          'private' => 1], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2011-03-07 00:43:31 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             $m->connect(':nickname/peopletags/public', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'peopletagsbyuser', | 
					
						
							|  |  |  |                          'public' => 1], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2011-03-07 00:43:31 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             $m->connect(':nickname/othertags', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'peopletagsforuser'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2011-03-07 00:43:31 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             $m->connect(':nickname/peopletagsubscriptions', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'peopletagsubscriptions'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2011-03-07 00:43:31 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             $m->connect(':tagger/all/:tag/subscribers', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'peopletagsubscribers'], | 
					
						
							|  |  |  |                         ['tagger' => Nickname::DISPLAY_FMT, | 
					
						
							|  |  |  |                          'tag' => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2011-03-07 00:43:31 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             $m->connect(':tagger/all/:tag/tagged', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'peopletagged'], | 
					
						
							|  |  |  |                         ['tagger' => Nickname::DISPLAY_FMT, | 
					
						
							|  |  |  |                          'tag' => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2011-03-07 00:43:31 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             $m->connect(':tagger/all/:tag/edit', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'editpeopletag'], | 
					
						
							|  |  |  |                         ['tagger' => Nickname::DISPLAY_FMT, | 
					
						
							|  |  |  |                          'tag' => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2011-03-07 00:43:31 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             foreach (['subscribe', 'unsubscribe'] as $v) { | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |                 $m->connect('peopletag/:id/'.$v, | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => $v.'peopletag'], | 
					
						
							|  |  |  |                             ['id' => '[0-9]{1,64}']); | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |              | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             $m->connect('user/:tagger_id/profiletag/:id/id', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'profiletagbyid'], | 
					
						
							|  |  |  |                         ['tagger_id' => '[0-9]+', | 
					
						
							|  |  |  |                          'id' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-27 23:46:30 +02:00
										 |  |  |             $m->connect(':nickname/all/:tag', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'showprofiletag'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT, | 
					
						
							|  |  |  |                          'tag' => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             foreach (['subscriptions', 'subscribers'] as $a) { | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |                 $m->connect(':nickname/'.$a.'/:tag', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => $a], | 
					
						
							|  |  |  |                             ['tag' => self::REGEX_TAG, | 
					
						
							|  |  |  |                              'nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             foreach (['rss', 'groups'] as $a) { | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |                 $m->connect(':nickname/'.$a, | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                             ['action' => 'user'.$a], | 
					
						
							|  |  |  |                             ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-03-06 17:34:49 +00:00
										 |  |  |             $m->connect('avatar/:file', | 
					
						
							|  |  |  |                         ['action' => 'avatar'], | 
					
						
							|  |  |  |                         ['file' => '.*']); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             $m->connect(':nickname/avatar', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'avatarbynickname'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							|  |  |  |              | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             $m->connect(':nickname/avatar/:size', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'avatarbynickname'], | 
					
						
							|  |  |  |                         ['size' => '(|original|\d+)', | 
					
						
							|  |  |  |                          'nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect(':nickname/tag/:tag/rss', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'userrss'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT, | 
					
						
							|  |  |  |                          'tag' => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             $m->connect(':nickname/tag/:tag', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'showstream'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT, | 
					
						
							|  |  |  |                          'tag' => self::REGEX_TAG]); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-04 16:47:43 +01:00
										 |  |  |             $m->connect(':nickname/rsd.xml', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'rsd'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2010-01-31 15:16:59 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-03 22:33:01 +01:00
										 |  |  |             $m->connect(':nickname', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'showstream'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2011-09-29 22:59:18 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-02-03 22:33:01 +01:00
										 |  |  |             $m->connect(':nickname/', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'showstream'], | 
					
						
							|  |  |  |                         ['nickname' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-12-09 13:11:02 -05:00
										 |  |  |             // AtomPub API
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/statusnet/app/service/:id.xml', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiAtomService'], | 
					
						
							|  |  |  |                         ['id' => Nickname::DISPLAY_FMT]); | 
					
						
							| 
									
										
										
										
											2010-12-09 13:11:02 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/statusnet/app/service.xml', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'ApiAtomService']); | 
					
						
							| 
									
										
										
										
											2010-12-09 13:11:02 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('api/statusnet/app/subscriptions/:subscriber/:subscribed.atom', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'AtomPubShowSubscription'], | 
					
						
							|  |  |  |                         ['subscriber' => '[0-9]+', | 
					
						
							|  |  |  |                          'subscribed' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2010-12-09 13:11:02 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-12-09 16:05:07 -05:00
										 |  |  |             $m->connect('api/statusnet/app/subscriptions/:subscriber.atom', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'AtomPubSubscriptionFeed'], | 
					
						
							|  |  |  |                         ['subscriber' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2010-12-09 16:05:07 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-12-13 12:40:01 -05:00
										 |  |  |             $m->connect('api/statusnet/app/memberships/:profile/:group.atom', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'AtomPubShowMembership'], | 
					
						
							|  |  |  |                         ['profile' => '[0-9]+', | 
					
						
							|  |  |  |                          'group' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2010-12-13 12:40:01 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-12-13 13:50:57 -05:00
										 |  |  |             $m->connect('api/statusnet/app/memberships/:profile.atom', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'AtomPubMembershipFeed'], | 
					
						
							|  |  |  |                         ['profile' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2010-12-13 12:40:01 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-01-23 16:49:12 -05:00
										 |  |  |             // URL shortening
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             $m->connect('url/:id', | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |                         ['action' => 'redirecturl'], | 
					
						
							|  |  |  |                         ['id' => '[0-9]+']); | 
					
						
							| 
									
										
										
										
											2011-01-23 16:49:12 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-01-26 00:21:05 -05:00
										 |  |  |             // user stuff
 | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-11 19:14:03 +01:00
										 |  |  |             Event::handle('RouterInitialized', [$m]); | 
					
						
							| 
									
										
										
										
											2009-10-28 16:07:57 -04:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2009-03-04 15:34:04 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-10 22:49:25 -05:00
										 |  |  |         return $m; | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function map($path) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2009-02-20 15:07:59 -08:00
										 |  |  |         try { | 
					
						
							| 
									
										
										
										
											2016-01-14 02:47:28 +01:00
										 |  |  |             return $this->m->match($path); | 
					
						
							|  |  |  |         } catch (NoRouteMapException $e) { | 
					
						
							|  |  |  |             common_debug($e->getMessage()); | 
					
						
							| 
									
										
										
										
											2010-10-21 01:12:56 +02:00
										 |  |  |             // TRANS: Client error on action trying to visit a non-existing page.
 | 
					
						
							| 
									
										
										
										
											2016-01-14 02:22:47 +01:00
										 |  |  |             throw new ClientException(_('Page not found.'), 404); | 
					
						
							| 
									
										
										
										
											2009-02-20 15:07:59 -08:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-20 17:30:09 -05:00
										 |  |  |     function build($action, $args=null, $params=null, $fragment=null) | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  |     { | 
					
						
							|  |  |  |         $action_arg = array('action' => $action); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if ($args) { | 
					
						
							| 
									
										
										
										
											2009-02-11 00:45:11 -05:00
										 |  |  |             $args = array_merge($action_arg, $args); | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  |         } else { | 
					
						
							|  |  |  |             $args = $action_arg; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-25 15:39:58 +00:00
										 |  |  |         $url = $this->m->generate($args, $params, $fragment); | 
					
						
							| 
									
										
										
										
											2009-03-25 15:39:58 +00:00
										 |  |  |         // Due to a bug in the Net_URL_Mapper code, the returned URL may
 | 
					
						
							|  |  |  |         // contain a malformed query of the form ?p1=v1?p2=v2?p3=v3. We
 | 
					
						
							|  |  |  |         // repair that here rather than modifying the upstream code...
 | 
					
						
							| 
									
										
										
										
											2009-03-25 12:56:52 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $qpos = strpos($url, '?'); | 
					
						
							| 
									
										
										
										
											2009-03-25 15:39:58 +00:00
										 |  |  |         if ($qpos !== false) { | 
					
						
							|  |  |  |             $url = substr($url, 0, $qpos+1) . | 
					
						
							| 
									
										
										
										
											2010-12-07 16:23:12 -05:00
										 |  |  |                 str_replace('?', '&', substr($url, $qpos+1)); | 
					
						
							| 
									
										
										
										
											2010-10-21 19:10:43 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |             // @fixme this is a hacky workaround for http_build_query in the
 | 
					
						
							|  |  |  |             // lower-level code and bad configs that set the default separator
 | 
					
						
							|  |  |  |             // to & instead of &. Encoded &s in parameters will not be
 | 
					
						
							|  |  |  |             // affected.
 | 
					
						
							|  |  |  |             $url = substr($url, 0, $qpos+1) . | 
					
						
							| 
									
										
										
										
											2010-12-07 16:23:12 -05:00
										 |  |  |                 str_replace('&', '&', substr($url, $qpos+1)); | 
					
						
							| 
									
										
										
										
											2010-10-21 19:10:43 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-25 15:39:58 +00:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2010-10-21 19:10:43 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-03-25 15:39:58 +00:00
										 |  |  |         return $url; | 
					
						
							| 
									
										
										
										
											2009-02-10 22:32:38 -05:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-02-21 18:51:56 +01:00
										 |  |  | } |