]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/Imap/ImapPlugin.php
Make optional arguments for getNoticeIds explicit
[quix0rs-gnu-social.git] / plugins / Imap / ImapPlugin.php
index d9768b680205e8e31b3aed737fa9adae7bacf523..dbaa904c6e5b0efba91fd09f838c0c2606237fdd 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * StatusNet, the distributed open-source microblogging tool
  *
- * Plugin to add a StatusNet Facebook application
+ * IMAP plugin to allow StatusNet to grab incoming emails and handle them as new user posts
  *
  * PHP version 5
  *
@@ -21,8 +21,9 @@
  *
  * @category  Plugin
  * @package   StatusNet
- * @author    Zach Copley <zach@status.net>
+ * @author   Craig Andrews <candrews@integralblue.com
  * @copyright 2009 StatusNet, Inc.
+ * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link      http://status.net/
  */
@@ -37,6 +38,7 @@ if (!defined('STATUSNET')) {
  * @category Plugin
  * @package  StatusNet
  * @author   Craig Andrews <candrews@integralblue.com
+ * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org
  * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
  * @link     http://status.net/
  */
@@ -46,41 +48,54 @@ class ImapPlugin extends Plugin
     public $user;
     public $password;
     public $poll_frequency = 60;
-    public static $instances = array();
-    public static $daemon_added = array();
 
     function initialize(){
         if(!isset($this->mailbox)){
-            throw new Exception("must specify a mailbox");
+            // TRANS: Exception thrown when configuration of the IMAP plugin is incorrect.
+            throw new Exception(_m('A mailbox must be specified.'));
         }
         if(!isset($this->user)){
-            throw new Exception("must specify a user");
+            // TRANS: Exception thrown when configuration of the IMAP plugin is incorrect.
+            throw new Exception(_m('A user must be specified.'));
         }
         if(!isset($this->password)){
-            throw new Exception("must specify a password");
+            // TRANS: Exception thrown when configuration of the IMAP plugin is incorrect.
+            throw new Exception(_m('A password must be specified.'));
         }
         if(!isset($this->poll_frequency)){
-            throw new Exception("must specify a poll_frequency");
+            // TRANS: Exception thrown when configuration of the IMAP plugin is incorrect.
+            // TRANS: poll_frequency is a setting that should not be translated.
+            throw new Exception(_m('A poll_frequency must be specified.'));
         }
 
-        self::$instances[] = $this;
         return true;
     }
 
-    function cleanup(){
-        $index = array_search($this, self::$instances);
-        unset(self::$instances[$index]);
-        return true;
+    /**
+     * Load related modules when needed
+     *
+     * @param string $cls Name of the class to be loaded
+     *
+     * @return boolean hook value; true means continue processing, false means stop.
+     */
+    function onAutoload($cls)
+    {
+        $dir = dirname(__FILE__);
+
+        switch ($cls)
+        {
+        case 'ImapManager':
+        case 'IMAPMailHandler':
+            include_once $dir . '/'.strtolower($cls).'.php';
+            return false;
+        default:
+            return true;
+        }
     }
 
-    function onGetValidDaemons($daemons)
+    function onStartQueueDaemonIoManagers(&$classes)
     {
-        if(! self::$daemon_added){
-            array_push($daemons, INSTALLDIR .
-                       '/plugins/Imap/imapdaemon.php');
-            self::$daemon_added = true;
-        }
-        return true;
+        $classes[] = new ImapManager($this);
     }
 
     function onPluginVersion(&$versions)
@@ -90,6 +105,7 @@ class ImapPlugin extends Plugin
                             'author' => 'Craig Andrews',
                             'homepage' => 'http://status.net/wiki/Plugin:IMAP',
                             'rawdescription' =>
+                            // TRANS: Plugin description.
                             _m('The IMAP plugin allows for StatusNet to check a POP or IMAP mailbox for incoming mail containing user posts.'));
         return true;
     }