]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/xmppmanager.php
Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
[quix0rs-gnu-social.git] / lib / xmppmanager.php
index 299175dd7d79927f8819d24c9ca4e6ae9db6014c..7acd7663a220f5f4ec77a38ab7b1f219bb32a6f5 100644 (file)
@@ -30,12 +30,12 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
  * In a multi-site queuedaemon.php run, one connection will be instantiated
  * for each site being handled by the current process that has XMPP enabled.
  */
-
 class XmppManager extends IoManager
 {
     protected $site = null;
     protected $pingid = 0;
     protected $lastping = null;
+    protected $conn = null;
 
     static protected $singletons = array();
     
@@ -48,7 +48,7 @@ class XmppManager extends IoManager
     public static function get()
     {
         if (common_config('xmpp', 'enabled')) {
-            $site = common_config('site', 'server');
+            $site = StatusNet::currentSite();
             if (empty(self::$singletons[$site])) {
                 self::$singletons[$site] = new XmppManager();
             }
@@ -69,7 +69,7 @@ class XmppManager extends IoManager
 
     function __construct()
     {
-        $this->site = common_config('site', 'server');
+        $this->site = StatusNet::currentSite();
         $this->resource = common_config('xmpp', 'resource') . 'daemon';
     }
 
@@ -101,7 +101,8 @@ class XmppManager extends IoManager
         $this->conn->addEventHandler('reconnect', 'handle_reconnect', $this);
 
         $this->conn->setReconnectTimeout(600);
-        jabber_send_presence("Send me a message to post a notice", 'available', null, 'available', -1);
+        // @todo Needs i18n?
+        jabber_send_presence("Send me a message to post a notice", 'available', null, 'available', 100);
 
         return !is_null($this->conn);
     }
@@ -233,7 +234,7 @@ class XmppManager extends IoManager
         common_log(LOG_NOTICE, 'XMPP reconnected');
 
         $this->conn->processUntil('session_start');
-        $this->conn->presence(null, 'available', null, 'available', -1);
+        $this->conn->presence(null, 'available', null, 'available', 100);
     }
 
 
@@ -252,12 +253,12 @@ class XmppManager extends IoManager
         $from = jabber_normalize_jid($pl['from']);
 
         if ($pl['type'] != 'chat') {
-            $this->log(LOG_WARNING, "Ignoring message of type ".$pl['type']." from $from.");
+            $this->log(LOG_WARNING, "Ignoring message of type ".$pl['type']." from $from: " . $pl['xml']->toString());
             return;
         }
 
         if (mb_strlen($pl['body']) == 0) {
-            $this->log(LOG_WARNING, "Ignoring message with empty body from $from.");
+            $this->log(LOG_WARNING, "Ignoring message with empty body from $from: "  . $pl['xml']->toString());
             return;
         }
 
@@ -280,9 +281,9 @@ class XmppManager extends IoManager
         $_cur = $user;
 
         if (!$user) {
-            $this->from_site($from, 'Unknown user; go to ' .
-                             common_local_url('imsettings') .
-                             ' to add your address to your account');
+            // TRANS: %s is the URL to the StatusNet site's Instant Messaging settings.
+            $this->from_site($from, sprintf(_('Unknown user. Go to %s ' .
+                             'to add your address to your account'),common_local_url('imsettings')));
             $this->log(LOG_WARNING, 'Message from unknown user ' . $from);
             return;
         }
@@ -313,7 +314,6 @@ class XmppManager extends IoManager
         unset($pl);
     }
 
-
     function is_self($from)
     {
         return preg_match('/^'.strtolower(jabber_daemon_address()).'/', strtolower($from));
@@ -399,7 +399,11 @@ class XmppManager extends IoManager
         $content_shortened = common_shorten_links($body);
         if (Notice::contentTooLong($content_shortened)) {
           $from = jabber_normalize_jid($pl['from']);
-          $this->from_site($from, sprintf(_('Message too long - maximum is %1$d characters, you sent %2$d.'),
+          // TRANS: Response to XMPP source when it sent too long a message.
+          // TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number.
+          $this->from_site($from, 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;
@@ -476,10 +480,10 @@ class XmppManager extends IoManager
      */
     protected function switchSite()
     {
-        if ($this->site != common_config('site', 'server')) {
+        if ($this->site != StatusNet::currentSite()) {
             common_log(LOG_DEBUG, __METHOD__ . ": switching to site $this->site");
             $this->stats('switch');
-            StatusNet::init($this->site);
+            StatusNet::switchSite($this->site);
         }
     }
 }