]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Tweaking nickname format regexes: added one that explicitly allows numbers, to be...
authorBrion Vibber <brion@pobox.com>
Fri, 10 Dec 2010 00:43:35 +0000 (16:43 -0800)
committerBrion Vibber <brion@pobox.com>
Fri, 10 Dec 2010 00:43:35 +0000 (16:43 -0800)
lib/nickname.php
lib/router.php

index a0c9378cd3add545ecde82f63425b323652fb99e..562f1e2052897252558a309998ccb801e0a4d48a 100644 (file)
 class Nickname
 {
     /**
-     * Regex fragment for pulling an arbitrarily-formated nickname.
+     * Regex fragment for pulling a formated nickname *OR* ID number.
+     * Suitable for router def of 'id' parameters on API actions.
+     *
+     * Not guaranteed to be valid after normalization; run the string through
+     * Nickname::normalize() to get the canonical form, or Nickname::isValid()
+     * if you just need to check if it's properly formatted.
+     *
+     * This, DISPLAY_FMT, and CANONICAL_FMT replace the old NICKNAME_FMT,
+     * but be aware that these should not be enclosed in []s.
+     *
+     * @fixme would prefer to define in reference to the other constants
+     */
+    const INPUT_FMT = '(?:[0-9]+|[0-9a-zA-Z_]{1,64})';
+
+    /**
+     * Regex fragment for acceptable user-formatted variant of a nickname.
+     * This includes some chars such as underscore which will be removed
+     * from the normalized canonical form, but still must fit within
+     * field length limits.
      *
      * Not guaranteed to be valid after normalization; run the string through
      * Nickname::normalize() to get the canonical form, or Nickname::isValid()
@@ -29,7 +47,7 @@ class Nickname
      * This and CANONICAL_FMT replace the old NICKNAME_FMT, but be aware
      * that these should not be enclosed in []s.
      */
-    const DISPLAY_FMT = '[0-9a-zA-Z_]+';
+    const DISPLAY_FMT = '[0-9a-zA-Z_]{1,64}';
 
     /**
      * Regex fragment for checking a canonical nickname.
index ca895c8bb67f3ef05c5c6c0b3f1e5f6e894c11e4..d747493ded5426f0a7d6ac26793b1da11fd990dc 100644 (file)
@@ -403,7 +403,7 @@ class Router
 
             $m->connect('api/statuses/friends_timeline/:id.:format',
                         array('action' => 'ApiTimelineFriends',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json|rss|atom)'));
 
             $m->connect('api/statuses/home_timeline.:format',
@@ -412,7 +412,7 @@ class Router
 
             $m->connect('api/statuses/home_timeline/:id.:format',
                         array('action' => 'ApiTimelineHome',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json|rss|atom)'));
 
             $m->connect('api/statuses/user_timeline.:format',
@@ -421,7 +421,7 @@ class Router
 
             $m->connect('api/statuses/user_timeline/:id.:format',
                         array('action' => 'ApiTimelineUser',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json|rss|atom)'));
 
             $m->connect('api/statuses/mentions.:format',
@@ -430,7 +430,7 @@ class Router
 
             $m->connect('api/statuses/mentions/:id.:format',
                         array('action' => 'ApiTimelineMentions',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json|rss|atom)'));
 
             $m->connect('api/statuses/replies.:format',
@@ -439,7 +439,7 @@ class Router
 
             $m->connect('api/statuses/replies/:id.:format',
                         array('action' => 'ApiTimelineMentions',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json|rss|atom)'));
 
             $m->connect('api/statuses/retweeted_by_me.:format',
@@ -460,7 +460,7 @@ class Router
 
             $m->connect('api/statuses/friends/:id.:format',
                         array('action' => 'ApiUserFriends',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json)'));
 
             $m->connect('api/statuses/followers.:format',
@@ -469,7 +469,7 @@ class Router
 
             $m->connect('api/statuses/followers/:id.:format',
                         array('action' => 'ApiUserFollowers',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json)'));
 
             $m->connect('api/statuses/show.:format',
@@ -512,7 +512,7 @@ class Router
 
             $m->connect('api/users/show/:id.:format',
                         array('action' => 'ApiUserShow',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json)'));
 
             // direct messages
@@ -550,12 +550,12 @@ class Router
 
             $m->connect('api/friendships/create/:id.:format',
                         array('action' => 'ApiFriendshipsCreate',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json)'));
 
             $m->connect('api/friendships/destroy/:id.:format',
                         array('action' => 'ApiFriendshipsDestroy',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json)'));
 
             // Social graph
@@ -612,17 +612,17 @@ class Router
 
             $m->connect('api/favorites/:id.:format',
                         array('action' => 'ApiTimelineFavorites',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json|rss|atom)'));
 
             $m->connect('api/favorites/create/:id.:format',
                         array('action' => 'ApiFavoriteCreate',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => '[0-9]+',
                               'format' => '(xml|json)'));
 
             $m->connect('api/favorites/destroy/:id.:format',
                         array('action' => 'ApiFavoriteDestroy',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => '[0-9]+',
                               'format' => '(xml|json)'));
             // blocks
 
@@ -632,7 +632,7 @@ class Router
 
             $m->connect('api/blocks/create/:id.:format',
                         array('action' => 'ApiBlockCreate',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json)'));
 
             $m->connect('api/blocks/destroy.:format',
@@ -641,7 +641,7 @@ class Router
 
             $m->connect('api/blocks/destroy/:id.:format',
                         array('action' => 'ApiBlockDestroy',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json)'));
             // help
 
@@ -677,7 +677,7 @@ class Router
 
             $m->connect('api/statusnet/groups/timeline/:id.:format',
                         array('action' => 'ApiTimelineGroup',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json|rss|atom)'));
 
             $m->connect('api/statusnet/groups/show.:format',
@@ -686,12 +686,12 @@ class Router
 
             $m->connect('api/statusnet/groups/show/:id.:format',
                         array('action' => 'ApiGroupShow',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json)'));
 
             $m->connect('api/statusnet/groups/join.:format',
                         array('action' => 'ApiGroupJoin',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json)'));
 
             $m->connect('api/statusnet/groups/join/:id.:format',
@@ -700,7 +700,7 @@ class Router
 
             $m->connect('api/statusnet/groups/leave.:format',
                         array('action' => 'ApiGroupLeave',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json)'));
 
             $m->connect('api/statusnet/groups/leave/:id.:format',
@@ -717,7 +717,7 @@ class Router
 
             $m->connect('api/statusnet/groups/list/:id.:format',
                         array('action' => 'ApiGroupList',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json|rss|atom)'));
 
             $m->connect('api/statusnet/groups/list_all.:format',
@@ -730,7 +730,7 @@ class Router
 
             $m->connect('api/statusnet/groups/membership/:id.:format',
                         array('action' => 'ApiGroupMembership',
-                              'id' => Nickname::DISPLAY_FMT,
+                              'id' => Nickname::INPUT_FMT,
                               'format' => '(xml|json)'));
 
             $m->connect('api/statusnet/groups/create.:format',
@@ -763,7 +763,7 @@ class Router
 
             $m->connect('api/statusnet/app/service/:id.xml',
                         array('action' => 'ApiAtomService',
-                              'id' => Nickname::DISPLAY_FMT));
+                              'id' => Nickname::INPUT_FMT));
 
             $m->connect('api/statusnet/app/service.xml',
                         array('action' => 'ApiAtomService'));