forked from GNUsocial/gnu-social
Added a new "reply" command
This commit is contained in:
parent
7b30e3c00f
commit
da16dc05a8
@ -125,7 +125,7 @@ class FavCommand extends Command
|
|||||||
function execute($channel)
|
function execute($channel)
|
||||||
{
|
{
|
||||||
if(substr($this->other,0,1)=='#'){
|
if(substr($this->other,0,1)=='#'){
|
||||||
//replying to a specific notice_id
|
//favoriting a specific notice_id
|
||||||
|
|
||||||
$notice = Notice::staticGet(substr($this->other,1));
|
$notice = Notice::staticGet(substr($this->other,1));
|
||||||
if (!$notice) {
|
if (!$notice) {
|
||||||
@ -134,7 +134,7 @@ class FavCommand extends Command
|
|||||||
}
|
}
|
||||||
$recipient = $notice->getProfile();
|
$recipient = $notice->getProfile();
|
||||||
}else{
|
}else{
|
||||||
//replying to a given user's last notice
|
//favoriting a given user's last notice
|
||||||
|
|
||||||
$recipient =
|
$recipient =
|
||||||
common_relative_profile($this->user, common_canonical_nickname($this->other));
|
common_relative_profile($this->user, common_canonical_nickname($this->other));
|
||||||
@ -359,6 +359,71 @@ class MessageCommand extends Command
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class ReplyCommand extends Command
|
||||||
|
{
|
||||||
|
var $other = null;
|
||||||
|
var $text = null;
|
||||||
|
function __construct($user, $other, $text)
|
||||||
|
{
|
||||||
|
parent::__construct($user);
|
||||||
|
$this->other = $other;
|
||||||
|
$this->text = $text;
|
||||||
|
}
|
||||||
|
|
||||||
|
function execute($channel)
|
||||||
|
{
|
||||||
|
if(substr($this->other,0,1)=='#'){
|
||||||
|
//replying to a specific notice_id
|
||||||
|
|
||||||
|
$notice = Notice::staticGet(substr($this->other,1));
|
||||||
|
if (!$notice) {
|
||||||
|
$channel->error($this->user, _('Notice with that id does not exist'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$recipient = $notice->getProfile();
|
||||||
|
}else{
|
||||||
|
//replying to a given user's last notice
|
||||||
|
|
||||||
|
$recipient =
|
||||||
|
common_relative_profile($this->user, common_canonical_nickname($this->other));
|
||||||
|
|
||||||
|
if (!$recipient) {
|
||||||
|
$channel->error($this->user, _('No such user.'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$notice = $recipient->getCurrentNotice();
|
||||||
|
if (!$notice) {
|
||||||
|
$channel->error($this->user, _('User has no last notice'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$len = mb_strlen($this->text);
|
||||||
|
|
||||||
|
if ($len == 0) {
|
||||||
|
$channel->error($this->user, _('No content!'));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->text = common_shorten_links($this->text);
|
||||||
|
|
||||||
|
if (Notice::contentTooLong($this->text)) {
|
||||||
|
$channel->error($this->user, sprintf(_('Notice too long - maximum is %d characters, you sent %d'),
|
||||||
|
Notice::maxContent(), mb_strlen($this->text)));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$notice = Notice::saveNew($this->user->id, $this->text, $channel->source(), 1,
|
||||||
|
$notice->id);
|
||||||
|
if ($notice) {
|
||||||
|
$channel->output($this->user, sprintf(_('Reply to %s sent'), $recipient->nickname));
|
||||||
|
} else {
|
||||||
|
$channel->error($this->user, _('Error saving notice.'));
|
||||||
|
}
|
||||||
|
common_broadcast_notice($notice);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class GetCommand extends Command
|
class GetCommand extends Command
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -510,6 +575,8 @@ class HelpCommand extends Command
|
|||||||
"whois <nickname> - get profile info on user\n".
|
"whois <nickname> - get profile info on user\n".
|
||||||
"fav <nickname> - add user's last notice as a 'fave'\n".
|
"fav <nickname> - add user's last notice as a 'fave'\n".
|
||||||
"fav #<notice_id> - add notice with the given id as a 'fave'\n".
|
"fav #<notice_id> - add notice with the given id as a 'fave'\n".
|
||||||
|
"reply #<notice_id> - reply to notice with a given id\n".
|
||||||
|
"reply <nickname> - reply to the last notice from user\n".
|
||||||
"join <group> - join group\n".
|
"join <group> - join group\n".
|
||||||
"drop <group> - leave group\n".
|
"drop <group> - leave group\n".
|
||||||
"stats - get your stats\n".
|
"stats - get your stats\n".
|
||||||
|
@ -134,6 +134,17 @@ class CommandInterpreter
|
|||||||
} else {
|
} else {
|
||||||
return new MessageCommand($user, $other, $extra);
|
return new MessageCommand($user, $other, $extra);
|
||||||
}
|
}
|
||||||
|
case 'r':
|
||||||
|
case 'reply':
|
||||||
|
if (!$arg) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
list($other, $extra) = $this->split_arg($arg);
|
||||||
|
if (!$extra) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return new ReplyCommand($user, $other, $extra);
|
||||||
|
}
|
||||||
case 'whois':
|
case 'whois':
|
||||||
if (!$arg) {
|
if (!$arg) {
|
||||||
return null;
|
return null;
|
||||||
|
Loading…
Reference in New Issue
Block a user