// TRANS: Subtitle for Atom subscription feed.
// TRANS: %1$s is a user nickname, %s$s is the StatusNet sitename.
- $feed->setSubtitle(sprintf(_("People %1$s has subscribed to on %2$s"),
+ $feed->setSubtitle(sprintf(_("People %1\$s has subscribed to on %2\$s"),
$this->_profile->getBestName(),
common_config('site', 'name')));
if (Event::handle('StartAtomPubNewActivity', array(&$activity))) {
if ($activity->verb != ActivityVerb::FOLLOW) {
- // TRANS: Client error displayed when not using the POST verb.
- // TRANS: Do not translate POST.
+ // TRANS: Client error displayed when not using the follow verb.
$this->clientError(_('Can only handle Follow activities.'));
return;
}
if (empty($profile)) {
// TRANS: Client exception thrown when subscribing to a non-existing profile.
+ // TRANS: %s is the unknown profile ID.
$this->clientError(sprintf(_('Unknown profile %s.'), $person->id));
return;
}
+ if (Subscription::exists($this->_profile, $profile)) {
+ // 409 Conflict
+ // TRANS: Client error displayed trying to subscribe to an already subscribed profile.
+ // TRANS: %s is the profile the user already has a subscription on.
+ $this->clientError(sprintf(_('Already subscribed to %s.'),
+ $person->id),
+ 409);
+ return;
+ }
+
if (Subscription::start($this->_profile, $profile)) {
$sub = Subscription::pkeyGet(array('subscriber' => $this->_profile->id,
'subscribed' => $profile->id));