/**
  * getInstance
  *
  * @return	Instance
  */
 public static function &getInstance()
 {
     if (!self::$_instance) {
         self::$_instance = new AutotweetPostHelper();
     }
     return self::$_instance;
 }
 /**
  * Checks for new events in the database (no triggers).
  *
  * @return	void
  */
 private function _onAfterRender()
 {
     $app = JFactory::getApplication();
     if ($app->isAdmin()) {
         return;
     }
     $option = $app->input->get('option');
     $task = $app->input->get('task');
     if ($option == 'com_autotweet' && $task == 'route') {
         return;
     }
     $this->cron_enabled = EParameter::getComponentParam(CAUTOTWEETNG, 'cron_enabled', false);
     if ($this->cron_enabled) {
         return;
     }
     $automators = F0FModel::getTmpInstance('Automators', 'AutoTweetModel');
     if (!$automators->lastRunCheck('automator', $this->interval)) {
         return;
     }
     $logger = AutotweetLogger::getInstance();
     // Bot/crawler detection
     $http_user_agent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : null;
     $remote_addr = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : null;
     if (0 < $this->detect_bots && ($this->detectCrawlerByAgent($http_user_agent) || $this->detectCrawlerByIP($remote_addr))) {
         $logger->log(JLog::WARNING, 'AutoTweet NG Automator-Plugin - crawler detected. IP: ' . $remote_addr . ', Agent: ' . $http_user_agent);
         return;
     }
     $logger->log(JLog::INFO, 'AutoTweet NG Automator-Plugin - executed - IP: ' . $remote_addr . ', Agent: ' . $http_user_agent);
     define('AUTOTWEET_AUTOMATOR_RUNNING', true);
     $helper = AutotweetPostHelper::getInstance();
     $helper->postQueuedMessages($this->max_posts);
     $feeds_enabled = EParameter::getComponentParam(CAUTOTWEETNG, 'feeds_enabled', false);
     if ($feeds_enabled) {
         $helper = FeedLoaderHelper::getInstance();
         $helper->importFeeds();
     }
 }