X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fcommandinterpreter.php;h=c546cf0fca94ca34f500a804ad34868981f93f83;hb=15ab9ff9e3303255ff14166ee86ffdf3bc4f52ce;hp=6b1b70055e06c5c9ed29b87acd075009fb450deb;hpb=bd12546984296047c125742670d0c6f7c24651dd;p=quix0rs-gnu-social.git diff --git a/lib/commandinterpreter.php b/lib/commandinterpreter.php index 6b1b70055e..c546cf0fca 100644 --- a/lib/commandinterpreter.php +++ b/lib/commandinterpreter.php @@ -28,7 +28,7 @@ class CommandInterpreter // XXX: localise $text = preg_replace('/\s+/', ' ', trim($text)); - list($cmd, $arg) = $this->split_arg($text); + list($cmd, $arg) = self::split_arg($text); // We try to support all the same commands as Twitter, see // http://getsatisfaction.com/twitter/topics/what_are_the_twitter_commands @@ -36,8 +36,9 @@ class CommandInterpreter // StatusNet $cmd = strtolower($cmd); + $result = false; - if (Event::handle('StartIntepretCommand', array($cmd, $arg, $user, &$result))) { + if (Event::handle('StartInterpretCommand', array($cmd, $arg, $user, &$result))) { switch($cmd) { case 'help': if ($arg) { @@ -55,7 +56,7 @@ class CommandInterpreter break; case 'lose': if ($arg) { - list($other, $extra) = $this->split_arg($arg); + list($other, $extra) = self::split_arg($arg); if ($extra) { $result = null; } else { @@ -88,7 +89,7 @@ class CommandInterpreter break; case 'on': if ($arg) { - list($other, $extra) = $this->split_arg($arg); + list($other, $extra) = self::split_arg($arg); if ($extra) { $result = null; } else { @@ -100,7 +101,7 @@ class CommandInterpreter break; case 'off': if ($arg) { - list($other, $extra) = $this->split_arg($arg); + list($other, $extra) = self::split_arg($arg); if ($extra) { $result = null; } else { @@ -122,7 +123,7 @@ class CommandInterpreter if (!$arg) { $result = null; } else { - list($other, $extra) = $this->split_arg($arg); + list($other, $extra) = self::split_arg($arg); if ($extra) { $result = null; } else { @@ -134,7 +135,7 @@ class CommandInterpreter if (!$arg) { $result = null; } else { - list($other, $extra) = $this->split_arg($arg); + list($other, $extra) = self::split_arg($arg); if ($extra) { $result = null; } else { @@ -147,7 +148,7 @@ class CommandInterpreter if (!$arg) { $result = null; } else { - list($other, $extra) = $this->split_arg($arg); + list($other, $extra) = self::split_arg($arg); if ($extra) { $result = null; } else { @@ -160,7 +161,7 @@ class CommandInterpreter if (!$arg) { $result = null; } else { - list($other, $extra) = $this->split_arg($arg); + list($other, $extra) = self::split_arg($arg); if ($extra) { $result = null; } else { @@ -173,57 +174,30 @@ class CommandInterpreter if (!$arg) { $result = null; } - list($other, $extra) = $this->split_arg($arg); + list($other, $extra) = self::split_arg($arg); if ($extra) { $result = null; } else { $result = new GetCommand($user, $other); } break; - case 'd': - case 'dm': - if (!$arg) { - $result = null; - } - list($other, $extra) = $this->split_arg($arg); - if (!$extra) { - $result = null; - } else { - $result = new MessageCommand($user, $other, $extra); - } - break; case 'r': case 'reply': if (!$arg) { $result = null; } - list($other, $extra) = $this->split_arg($arg); + list($other, $extra) = self::split_arg($arg); if (!$extra) { $result = null; } else { $result = new ReplyCommand($user, $other, $extra); } break; - case 'repeat': - case 'rp': - case 'rt': - case 'rd': - if (!$arg) { - $result = null; - } else { - list($other, $extra) = $this->split_arg($arg); - if ($extra) { - $result = null; - } else { - $result = new RepeatCommand($user, $other); - } - } - break; case 'whois': if (!$arg) { $result = null; } else { - list($other, $extra) = $this->split_arg($arg); + list($other, $extra) = self::split_arg($arg); if ($extra) { $result = null; } else { @@ -231,23 +205,11 @@ class CommandInterpreter } } break; - case 'fav': - if (!$arg) { - $result = null; - } else { - list($other, $extra) = $this->split_arg($arg); - if ($extra) { - $result = null; - } else { - $result = new FavCommand($user, $other); - } - } - break; case 'nudge': if (!$arg) { $result = null; } else { - list($other, $extra) = $this->split_arg($arg); + list($other, $extra) = self::split_arg($arg); if ($extra) { $result = null; } else { @@ -266,7 +228,7 @@ class CommandInterpreter if (!$arg) { $result = null; } else { - list($other, $extra) = $this->split_arg($arg); + list($other, $extra) = self::split_arg($arg); if ($extra) { $result = null; } else { @@ -274,11 +236,37 @@ class CommandInterpreter } } break; + case 'list': + case 'tag': + if (!$arg) { + $result = null; + break; + } + list($other, $tags) = self::split_arg($arg); + if (!$tags) { + $result = null; + } else { + $result = new TagCommand($user, $other, $tags); + } + break; + case 'unlist': + case 'untag': + if (!$arg) { + $result = null; + break; + } + list($other, $tags) = self::split_arg($arg); + if (!$tags) { + $result = null; + } else { + $result = new UntagCommand($user, $other, $tags); + } + break; case 'track': if (!$arg) { $result = null; } else { - list($word, $extra) = $this->split_arg($arg); + list($word, $extra) = self::split_arg($arg); if ($extra) { $result = null; } else if ($word == 'off') { @@ -292,7 +280,7 @@ class CommandInterpreter if (!$arg) { $result = null; } else { - list($word, $extra) = $this->split_arg($arg); + list($word, $extra) = self::split_arg($arg); if ($extra) { $result = null; } else if ($word == 'all') { @@ -310,10 +298,8 @@ class CommandInterpreter $result = new TrackingCommand($user); } break; - default: - $result = false; } - + Event::handle('EndInterpretCommand', array($cmd, $arg, $user, &$result)); } @@ -323,7 +309,7 @@ class CommandInterpreter /** * Split arguments without triggering a PHP notice warning */ - function split_arg($text) + static function split_arg($text) { $pieces = explode(' ', $text, 2); if (count($pieces) == 1) {