* @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
*/
abstract function normalize($screenname);
-
/**
* validate (ensure the validity of) a screenname
*
*/
function sendNotice($screenname, $notice)
{
- return $this->sendMessage($screenname, $this->format_notice($notice));
+ return $this->sendMessage($screenname, $this->formatNotice($notice));
}
/**
/**
* receive a raw message
* Raw IM data is taken from the incoming queue, and passed to this function.
- * It should parse the raw message and call handle_incoming()
- *
+ * It should parse the raw message and call handleIncoming()
+ *
* Returning false may CAUSE REPROCESSING OF THE QUEUE ITEM, and should
* be used for temporary failures only. For permanent failures such as
* unrecognized addresses, return true to indicate your processing has
*/
function microiduri($screenname)
{
- return $this->transport . ':' . $screenname;
+ return $this->transport . ':' . $screenname;
}
//========================UTILITY FUNCTIONS USEFUL TO IMPLEMENTATIONS - MISC ========================\
*
* @return User user
*/
- function get_user($screenname)
+ function getUser($screenname)
{
$user_im_prefs = $this->getUserImPrefsFromScreenname($screenname);
if($user_im_prefs){
}
}
-
/**
* given a screenname, get the User_im_prefs object for this transport
*
}
}
-
/**
* given a User, get their screenname
*
*
* @return string screenname of that user
*/
- function get_screenname($user)
+ function getScreenname($user)
{
$user_im_prefs = $this->getUserImPrefsFromUser($user);
if ($user_im_prefs) {
}
}
-
/**
* given a User, get their User_im_prefs
*
}
/**
- * 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
*
* @return boolean success value
*/
- function send_confirmation_code($screenname, $code, $user)
+ 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' .
+ // @todo FIXME: parameter 4 is not being used. Should para3 and para4 be a markdown link?
+ // 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.'),
+ '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', array('code' => $code)));
return $this->sendMessage($screenname, $body);
* @return boolean success flag
*/
- function public_notice($notice)
+ function publicNotice($notice)
{
// Now, users who want everything
* @return boolean success flag
*/
- function broadcast_notice($notice)
+ function broadcastNotice($notice)
{
-
$ni = $notice->whoGets();
foreach ($ni as $user_id => $reason) {
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 format_notice($notice)
+ function formatNotice($notice)
{
$profile = $notice->getProfile();
return $profile->nickname . ': ' . $notice->content . ' [' . $notice->id . ']';
* @param string $body message text
* @return boolean true if the message was a command and was executed, false if it was not a command
*/
- protected function handle_command($user, $body)
+ protected function handleCommand($user, $body)
{
$inter = new CommandInterpreter();
$cmd = $inter->handle_command($user, $body);
* @param string $txt message text
* @return boolean true if autoreply
*/
- protected function is_autoreply($txt)
+ protected function isAutoreply($txt)
{
if (preg_match('/[\[\(]?[Aa]uto[-\s]?[Rr]e(ply|sponse)[\]\)]/', $txt)) {
return true;
* @param string $txt message text
* @return boolean true if OTR
*/
- protected function is_otr($txt)
+ protected function isOtr($txt)
{
if (preg_match('/^\?OTR/', $txt)) {
return true;
*
* @param boolean success
*/
- protected function handle_incoming($from, $notice_text)
+ protected function handleIncoming($from, $notice_text)
{
- $user = $this->get_user($from);
+ $user = $this->getUser($from);
// For common_current_user to work
global $_cur;
$_cur = $user;
common_log(LOG_WARNING, 'Message from unknown user ' . $from);
return;
}
- if ($this->handle_command($user, $notice_text)) {
+ if ($this->handleCommand($user, $notice_text)) {
common_log(LOG_INFO, "Command message by $from handled.");
return;
- } else if ($this->is_autoreply($notice_text)) {
+ } else if ($this->isAutoreply($notice_text)) {
common_log(LOG_INFO, 'Ignoring auto reply from ' . $from);
return;
- } else if ($this->is_otr($notice_text)) {
+ } else if ($this->isOtr($notice_text)) {
common_log(LOG_INFO, 'Ignoring OTR from ' . $from);
return;
} else {
common_log(LOG_INFO, 'Posting a notice from ' . $user->nickname);
- $this->add_notice($from, $user, $notice_text);
+ $this->addNotice($from, $user, $notice_text);
}
$user->free();
*
* @param boolean success
*/
- protected function add_notice($screenname, $user, $body)
+ protected function addNotice($screenname, $user, $body)
{
$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;
}
return;
}
- common_broadcast_notice($notice);
common_log(LOG_INFO,
'Added notice ' . $notice->id . ' from user ' . $user->nickname);
$notice->free();
}
//========================EVENT HANDLERS========================\
-
+
/**
* Register notice queue handler
*
{
if($transport == $this->transport)
{
- $this->send_confirmation_code($screenname, $code, $user);
+ $this->sendConfirmationCode($screenname, $code, $user);
return false;
}
}
{
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.'));
}
}
}