* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
-
abstract class ImPlugin extends Plugin
{
//name of this IM transport
*
* @return boolean success value
*/
- function sendNotice($screenname, $notice)
+ function sendNotice($screenname, Notice $notice)
{
return $this->sendMessage($screenname, $this->formatNotice($notice));
}
{
$user_im_prefs = $this->getUserImPrefsFromScreenname($screenname);
if($user_im_prefs){
- $user = User::staticGet('id', $user_im_prefs->user_id);
+ $user = User::getKV('id', $user_im_prefs->user_id);
$user_im_prefs->free();
return $user;
}else{
}
/**
- * send a confirmation code to a user
+ * Send a confirmation code to a user
*
* @param string $screenname screenname sending to
* @param string $code the confirmation code
*/
function sendConfirmationCode($screenname, $code, $user)
{
- $body = sprintf(_('User "%s" on %s has said that your %s screenname belongs to them. ' .
- 'If that\'s true, you can confirm by clicking on this URL: ' .
- '%s' .
+ // TRANS: Body text for confirmation code e-mail.
+ // TRANS: %1$s is a user nickname, %2$s is the StatusNet sitename,
+ // TRANS: %3$s is the display name of an IM plugin.
+ $body = sprintf(_('User "%1$s" on %2$s has said that your %3$s screenname belongs to them. ' .
+ 'If that is true, you can confirm by clicking on this URL: ' .
+ '%4$s' .
' . (If you cannot click it, copy-and-paste it into the ' .
- 'address bar of your browser). If that user isn\'t you, ' .
- 'or if you didn\'t request this confirmation, just ignore this message.'),
- $user->nickname, common_config('site', 'name'), $this->getDisplayName(), common_local_url('confirmaddress', array('code' => $code)));
+ 'address bar of your browser). If that user is not you, ' .
+ 'or if you did not request this confirmation, just ignore this message.'),
+ $user->nickname, common_config('site', 'name'), $this->getDisplayName(), common_local_url('confirmaddress', null, array('code' => $code)));
return $this->sendMessage($screenname, $body);
}
function broadcastNotice($notice)
{
-
$ni = $notice->whoGets();
foreach ($ni as $user_id => $reason) {
- $user = User::staticGet($user_id);
+ $user = User::getKV($user_id);
if (empty($user)) {
// either not a local user, or just not found
continue;
case NOTICE_INBOX_SOURCE_GROUP:
break;
default:
- throw new Exception(sprintf(_("Unknown inbox source %d."), $reason));
+ // TRANS: Exception thrown when trying to deliver a notice to an unknown inbox.
+ // TRANS: %d is the unknown inbox ID (number).
+ throw new Exception(sprintf(_('Unknown inbox source %d.'), $reason));
}
common_log(LOG_INFO,
* @return string plain-text version of the notice, with user nickname prefixed
*/
- function formatNotice($notice)
+ protected function formatNotice(Notice $notice)
{
$profile = $notice->getProfile();
- return $profile->nickname . ': ' . $notice->content . ' [' . $notice->id . ']';
+
+ try {
+ $parent = $notice->getParent();
+ $orig_profile = $parent->getProfile();
+ $nicknames = sprintf('%1$s => %2$s', $profile->nickname, $orig_profile->nickname);
+ } catch (Exception $e) {
+ $nicknames = $profile->nickname;
+ }
+
+ return sprintf('%1$s: %2$s [%3$u]', $nicknames, $notice->content, $notice->id);
}
//========================UTILITY FUNCTIONS USEFUL TO IMPLEMENTATIONS - RECEIVING ========================\
$body = trim(strip_tags($body));
$content_shortened = common_shorten_links($body);
if (Notice::contentTooLong($content_shortened)) {
- $this->sendFromSite($screenname, sprintf(_('Message too long - maximum is %1$d characters, you sent %2$d.'),
- Notice::maxContent(),
- mb_strlen($content_shortened)));
+ $this->sendFromSite($screenname,
+ // TRANS: Message given when a status is too long. %1$s is the maximum number of characters,
+ // TRANS: %2$s is the number of characters sent (used for plural).
+ 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.',
+ Notice::maxContent()),
+ Notice::maxContent(),
+ mb_strlen($content_shortened)));
return;
}
function onStartEnqueueNotice($notice, &$transports)
{
- $profile = Profile::staticGet($notice->profile_id);
+ $profile = Profile::getKV($notice->profile_id);
if (!$profile) {
common_log(LOG_WARNING, 'Refusing to broadcast notice with ' .
return true;
}
+ function onHaveImPlugin(&$haveImPlugin) {
+ $haveImPlugin = true; // set flag true (we're loaded, after all!)
+ return false; // stop looking
+ }
+
function initialize()
{
if( ! common_config('queue', 'enabled'))
{
- throw new ServerException("Queueing must be enabled to use IM plugins");
+ // TRANS: Server exception thrown trying to initialise an IM plugin without meeting all prerequisites.
+ throw new ServerException(_('Queueing must be enabled to use IM plugins.'));
}
if(is_null($this->transport)){
- throw new ServerException('transport cannot be null');
+ // TRANS: Server exception thrown trying to initialise an IM plugin without a transport method.
+ throw new ServerException(_('Transport cannot be null.'));
}
}
}