X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fcommand.php;h=830b97ee239e9d8ba693efb3aa7f3ebf1b5cde4a;hb=4ea396f8718648ef6b900ea2aa8a7cad9f14d721;hp=e93b7fbfee62bb2237b9a69fdb7fb8e0cf8816dd;hpb=e5e3aeb4e67cece90f04ae89c8e2714af4817e56;p=quix0rs-gnu-social.git diff --git a/lib/command.php b/lib/command.php index e93b7fbfee..830b97ee23 100644 --- a/lib/command.php +++ b/lib/command.php @@ -17,16 +17,18 @@ * along with this program. If not, see . */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +if (!defined('GNUSOCIAL')) { exit(1); } require_once(INSTALLDIR.'/lib/channel.php'); class Command { + protected $scoped = null; // The Profile of the user performing the command var $user = null; function __construct($user=null) { + $this->scoped = $user->getProfile(); $this->user = $user; } @@ -274,57 +276,6 @@ class StatsCommand extends Command } } -class FavCommand extends Command -{ - var $other = null; - - function __construct($user, $other) - { - parent::__construct($user); - $this->other = $other; - } - - function handle($channel) - { - $notice = $this->getNotice($this->other); - - $fave = new Fave(); - $fave->user_id = $this->user->id; - $fave->notice_id = $notice->id; - $fave->find(); - - if ($fave->fetch()) { - // TRANS: Error message text shown when a favorite could not be set because it has already been favorited. - $channel->error($this->user, _('Could not create favorite: Already favorited.')); - return; - } - - $fave = Fave::addNew($this->user->getProfile(), $notice); - - if (!$fave) { - // TRANS: Error message text shown when a favorite could not be set. - $channel->error($this->user, _('Could not create favorite.')); - return; - } - - // @fixme favorite notification should be triggered - // at a lower level - - $other = User::getKV('id', $notice->profile_id); - - if ($other && $other->id != $this->user->id) { - if ($other->email && $other->emailnotifyfav) { - mail_notify_fave($other, $this->user, $notice); - } - } - - $this->user->blowFavesCache(); - - // TRANS: Text shown when a notice has been marked as favourite successfully. - $channel->output($this->user, _('Notice marked as fave.')); - } -} - class JoinCommand extends Command { var $other = null; @@ -572,105 +523,6 @@ class WhoisCommand extends Command } } -class MessageCommand extends Command -{ - var $other = null; - var $text = null; - function __construct($user, $other, $text) - { - parent::__construct($user); - $this->other = $other; - $this->text = $text; - } - - function handle($channel) - { - try { - $other = $this->getUser($this->other); - } catch (CommandException $e) { - try { - $profile = $this->getProfile($this->other); - } catch (CommandException $f) { - throw $e; - } - // TRANS: Command exception text shown when trying to send a direct message to a remote user (a user not registered at the current server). - // TRANS: %s is a remote profile. - throw new CommandException(sprintf(_('%s is a remote profile; you can only send direct messages to users on the same server.'), $this->other)); - } - - $len = mb_strlen($this->text); - - if ($len == 0) { - // TRANS: Command exception text shown when trying to send a direct message to another user without content. - $channel->error($this->user, _('No content!')); - return; - } - - $this->text = $this->user->shortenLinks($this->text); - - if (Message::contentTooLong($this->text)) { - // XXX: i18n. Needs plural support. - // TRANS: Message given if content is too long. %1$sd is used for plural. - // TRANS: %1$d is the maximum number of characters, %2$d is the number of submitted characters. - $channel->error($this->user, sprintf(_m('Message too long - maximum is %1$d character, you sent %2$d.', - 'Message too long - maximum is %1$d characters, you sent %2$d.', - Message::maxContent()), - Message::maxContent(), mb_strlen($this->text))); - return; - } - - if (!$other) { - // TRANS: Error text shown when trying to send a direct message to a user that does not exist. - $channel->error($this->user, _('No such user.')); - return; - } else if (!$this->user->mutuallySubscribed($other)) { - // TRANS: Error text shown when trying to send a direct message to a user without a mutual subscription (each user must be subscribed to the other). - $channel->error($this->user, _('You can\'t send a message to this user.')); - return; - } else if ($this->user->id == $other->id) { - // TRANS: Error text shown when trying to send a direct message to self. - $channel->error($this->user, _('Do not send a message to yourself; just say it to yourself quietly instead.')); - return; - } - try { - $message = Message::saveNew($this->user->id, $other->id, $this->text, $channel->source()); - $message->notify(); - // TRANS: Message given have sent a direct message to another user. - // TRANS: %s is the name of the other user. - $channel->output($this->user, sprintf(_('Direct message to %s sent.'), $this->other)); - } catch (Exception $e) { - // TRANS: Error text shown sending a direct message fails with an unknown reason. - $channel->error($this->user, $e->getMessage()); - } - } -} - -class RepeatCommand extends Command -{ - var $other = null; - function __construct($user, $other) - { - parent::__construct($user); - $this->other = $other; - } - - function handle($channel) - { - $notice = $this->getNotice($this->other); - - try { - $repeat = $notice->repeat($this->user->id, $channel->source()); - $recipient = $notice->getProfile(); - - // TRANS: Message given having repeated a notice from another user. - // TRANS: %s is the name of the user for which the notice was repeated. - $channel->output($this->user, sprintf(_('Notice from %s repeated.'), $recipient->nickname)); - } catch (Exception $e) { - $channel->error($this->user, $e->getMessage()); - } - } -} - class ReplyCommand extends Command { var $other = null; @@ -770,15 +622,8 @@ class SubCommand extends Command $target = $this->getProfile($this->other); - $remote = Remote_profile::getKV('id', $target->id); - if ($remote) { - // TRANS: Command exception text shown when trying to subscribe to an OMB profile using the subscribe command. - throw new CommandException(_("Can't subscribe to OMB profiles by command.")); - } - try { - Subscription::start($this->user->getProfile(), - $target); + Subscription::start($this->user->getProfile(), $target); // TRANS: Text shown after having subscribed to another user successfully. // TRANS: %s is the name of the user the subscription was requested for. $channel->output($this->user, sprintf(_('Subscribed to %s.'), $this->other)); @@ -809,8 +654,7 @@ class UnsubCommand extends Command $target = $this->getProfile($this->other); try { - Subscription::cancel($this->user->getProfile(), - $target); + Subscription::cancel($this->user->getProfile(), $target); // TRANS: Text shown after having unsubscribed from another user successfully. // TRANS: %s is the name of the user the unsubscription was requested for. $channel->output($this->user, sprintf(_('Unsubscribed from %s.'), $this->other)); @@ -933,7 +777,7 @@ class SubscriptionsCommand extends Command { function handle($channel) { - $profile = $this->user->getSubscriptions(0); + $profile = $this->user->getSubscribed(0); $nicknames=array(); while ($profile->fetch()) { $nicknames[]=$profile->nickname; @@ -988,7 +832,7 @@ class GroupsCommand extends Command { $group = $this->user->getGroups(); $groups=array(); - while ($group->fetch()) { + while ($group instanceof User_group && $group->fetch()) { $groups[]=$group->nickname; } if(count($groups)==0){ @@ -1042,14 +886,6 @@ class HelpCommand extends Command "whois " => _m('COMMANDHELP', "get profile info on user"), // TRANS: Help message for IM/SMS command "lose ". "lose " => _m('COMMANDHELP', "force user to stop following you"), - // TRANS: Help message for IM/SMS command "fav ". - "fav " => _m('COMMANDHELP', "add user's last notice as a 'fave'"), - // TRANS: Help message for IM/SMS command "fav #". - "fav #" => _m('COMMANDHELP', "add notice with the given id as a 'fave'"), - // TRANS: Help message for IM/SMS command "repeat #". - "repeat #" => _m('COMMANDHELP', "repeat a notice with a given id"), - // TRANS: Help message for IM/SMS command "repeat ". - "repeat " => _m('COMMANDHELP', "repeat the last notice from user"), // TRANS: Help message for IM/SMS command "reply #". "reply #" => _m('COMMANDHELP', "reply to notice with a given id"), // TRANS: Help message for IM/SMS command "reply ". @@ -1095,6 +931,8 @@ class HelpCommand extends Command // Give plugins a chance to add or override... Event::handle('HelpCommandMessages', array($this, &$commands)); + + ksort($commands); foreach ($commands as $command => $help) { $out[] = "$command - $help"; }