]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/apidirectmessagenew.php
Merge branch '0.9.x' into json-activities
[quix0rs-gnu-social.git] / actions / apidirectmessagenew.php
index d836409ae01686d363e6577df319e2aab0211b60..e33077cdac7d5277a310ce7b5efe71c62b3bc41d 100644 (file)
@@ -21,6 +21,9 @@
  *
  * @category  API
  * @package   StatusNet
+ * @author    Adrian Lang <mail@adrianlang.de>
+ * @author    Evan Prodromou <evan@status.net>
+ * @author    Robin Millette <robin@millette.info>
  * @author    Zach Copley <zach@status.net>
  * @copyright 2009 StatusNet, Inc.
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
@@ -31,7 +34,7 @@ if (!defined('STATUSNET')) {
     exit(1);
 }
 
-require_once INSTALLDIR.'/lib/apiauth.php';
+require_once INSTALLDIR . '/lib/apiauth.php';
 
 /**
  * Creates a new direct message from the authenticating user to
@@ -39,16 +42,15 @@ require_once INSTALLDIR.'/lib/apiauth.php';
  *
  * @category API
  * @package  StatusNet
+ * @author   Adrian Lang <mail@adrianlang.de>
+ * @author   Evan Prodromou <evan@status.net>
+ * @author   Robin Millette <robin@millette.info>
  * @author   Zach Copley <zach@status.net>
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
-
 class ApiDirectMessageNewAction extends ApiAuthAction
 {
-    var $format  = null;
-    var $source  = null;
-    var $user    = null;
     var $other   = null;
     var $content = null;
 
@@ -58,33 +60,19 @@ class ApiDirectMessageNewAction extends ApiAuthAction
      * @param array $args $_REQUEST args
      *
      * @return boolean success flag
-     *
      */
-
     function prepare($args)
     {
         parent::prepare($args);
 
-        if ($this->requiresAuth()) {
-            if ($this->checkBasicAuthUser() == false) {
-                return;
-            }
-        }
-
         $this->user = $this->auth_user;
 
         if (empty($this->user)) {
-            $this->clientError(_('No such user!'), 404, $this->format);
+            // TRANS: Client error when user not found for an API direct message action.
+            $this->clientError(_('No such user.'), 404, $this->format);
             return;
         }
 
-        $this->source = $this->trimmed('source'); // Not supported by Twitter.
-
-        $reserved_sources = array('web', 'omb', 'mail', 'xmpp', 'api');
-        if (empty($thtis->source) || in_array($this->source, $reserved_sources)) {
-            $source = 'api';
-        }
-
         $this->content = $this->trimmed('text');
 
         $this->user  = $this->auth_user;
@@ -97,8 +85,6 @@ class ApiDirectMessageNewAction extends ApiAuthAction
             $this->other = $this->getTargetUser($user_param);
         }
 
-        $this->format = $this->arg('format');
-
         return true;
     }
 
@@ -111,13 +97,13 @@ class ApiDirectMessageNewAction extends ApiAuthAction
      *
      * @return void
      */
-
     function handle($args)
     {
         parent::handle($args);
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
             $this->clientError(
+                // TRANS: Client error. POST is a HTTP command. It should not be translated.
                 _('This method requires a POST.'),
                 400,
                 $this->format
@@ -127,16 +113,18 @@ class ApiDirectMessageNewAction extends ApiAuthAction
 
         if (empty($this->content)) {
             $this->clientError(
+                // TRANS: Client error displayed when no message text was submitted (406).
                 _('No message text!'),
                 406,
                 $this->format
             );
         } else {
-            $content_shortened = common_shorten_links($this->content);
+            $content_shortened = $this->auth_user->shortenLinks($this->content);
             if (Message::contentTooLong($content_shortened)) {
                 $this->clientError(
-                    sprintf(
-                        _('That\'s too long. Max message size is %d chars.'),
+                    // TRANS: Client error displayed when message content is too long.
+                    // TRANS: %d is the maximum number of characters for a message.
+                    sprintf(_m('That\'s too long. Maximum message size is %d character.', 'That\'s too long. Maximum message size is %d characters.', Message::maxContent()),
                         Message::maxContent()
                     ),
                     406,
@@ -147,11 +135,13 @@ class ApiDirectMessageNewAction extends ApiAuthAction
         }
 
         if (empty($this->other)) {
+            // TRANS: Client error displayed if a recipient user could not be found (403).
             $this->clientError(_('Recipient user not found.'), 403, $this->format);
             return;
         } else if (!$this->user->mutuallySubscribed($this->other)) {
             $this->clientError(
-                _('Can\'t send direct messages to users who aren\'t your friend.'),
+                // TRANS: Client error displayed trying to direct message another user who's not a friend (403).
+                _('Cannot send direct messages to users who aren\'t your friend.'),
                 403,
                 $this->format
             );
@@ -160,10 +150,9 @@ class ApiDirectMessageNewAction extends ApiAuthAction
 
             // Note: sending msgs to yourself is allowed by Twitter
 
-            $errmsg = 'Don\'t send a message to yourself; ' . 
-                   'just say it to yourself quietly instead.'
-
-            $this->clientError(_($errmsg), 403, $this->format);
+            // TRANS: Client error displayed trying to direct message self (403).
+            $this->clientError(_('Do not send a message to yourself; ' .
+                   'just say it to yourself quietly instead.'), 403, $this->format);
             return;
         }
 
@@ -179,7 +168,7 @@ class ApiDirectMessageNewAction extends ApiAuthAction
             return;
         }
 
-        mail_notify_message($message, $this->user, $this->other);
+        $message->notify();
 
         if ($this->format == 'xml') {
             $this->showSingleXmlDirectMessage($message);
@@ -187,6 +176,4 @@ class ApiDirectMessageNewAction extends ApiAuthAction
             $this->showSingleJsondirectMessage($message);
         }
     }
-
 }
-