More fixes for 'fav' IM command: don't die with a fatal error if the notice has already been favored, and don't spew a warning when checking for user ID match.

This commit is contained in:
Brion Vibber 2011-03-01 17:09:41 -08:00
parent d09aa9c947
commit e42db528e2

View File

@ -287,6 +287,18 @@ class FavCommand extends Command
function handle($channel) function handle($channel)
{ {
$notice = $this->getNotice($this->other); $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); $fave = Fave::addNew($this->user->getProfile(), $notice);
if (!$fave) { if (!$fave) {
@ -300,7 +312,7 @@ class FavCommand extends Command
$other = User::staticGet('id', $notice->profile_id); $other = User::staticGet('id', $notice->profile_id);
if ($other && $other->id != $user->id) { if ($other && $other->id != $this->user->id) {
if ($other->email && $other->emailnotifyfav) { if ($other->email && $other->emailnotifyfav) {
mail_notify_fave($other, $this->user, $notice); mail_notify_fave($other, $this->user, $notice);
} }