示例#1
0
 /**
  * _getContentData
  *
  * @param   array  &$request  Param
  *
  * @return	data
  */
 public function _getContentData(&$request)
 {
     $this->logger->log(JLog::INFO, '_getContentData', $request);
     // Get source plugin for message
     // Gets the plugin that has triggered the message
     $pluginsModel = F0FModel::getTmpInstance('Plugins', 'AutoTweetModel');
     $plugin = $pluginsModel->createPlugin($request->plugin);
     if (empty($plugin)) {
         $this->logger->log(JLog::WARNING, 'publishRequest: unknown plugin. Source: ' . $request->plugin);
         $post = $request;
     } else {
         $plugin->setMessage($request->description);
         $request->xtform = EForm::paramsToRegistry($request);
         $plugin->setHashtags($request->xtform->get('hashtags', ''));
         // Get data from plugin
         if (method_exists($plugin, 'getExtendedData')) {
             if (!isset($request->native_object) && isset($request->params)) {
                 $request->native_object = $request->params;
             }
             $data = $plugin->getExtendedData($request->ref_id, $request->typeinfo, $request->native_object);
         } else {
             $data = $plugin->getData($request->ref_id, $request->typeinfo);
         }
     }
     // Check if post is valid to avoid spam; if not remove post from queue
     if (empty($data) || !array_key_exists('is_valid', $data) || !$data['is_valid']) {
         $this->logger->log(JLog::ERROR, 'publishRequest: message not valid (spam or technical problem - old plugin?), queue id = ' . $request->id);
         RequestHelp::saveError($request->id, 'COM_AUTOTWEET_ERROR_PUBLISHREQUEST');
         return null;
     }
     $data['autopublish'] = $plugin->isAutopublish();
     $data['show_url'] = $plugin->getShowUrlMode();
     return $data;
 }
 /**
  * postQueuedMessages
  *
  * @param   integer  $max  Param
  *
  * @return	boolean
  */
 public function postQueuedMessages($max)
 {
     $now = JFactory::getDate();
     $logger = AutotweetLogger::getInstance();
     if (AUTOTWEETNG_JOOCIAL && !VirtualManager::getInstance()->isWorking($now)) {
         $logger->log(JLog::INFO, 'AutotweetPostHelper - VM not working now ' . $now->toISO8601(true));
         return false;
     }
     // Get msgs from queue (sending is allowed only, when publish date is not in the future)
     // Sub 1 minute to avoid problems when automator plugin and extension plugin are executed at the same time...
     $check_date = $now->toUnix();
     // Sub 1 minute check
     $mincheck_time_intval = EParameter::getComponentParam(CAUTOTWEETNG, 'mincheck_time_intval', 60);
     $check_date = $check_date - $mincheck_time_intval;
     $check_date = JFactory::getDate($check_date);
     $requests = RequestHelp::getRequestList($check_date, $max);
     $sharingHelper = SharingHelper::getInstance();
     $logger->log(JLog::INFO, 'postQueuedMessages Requests: ' . count($requests));
     foreach ($requests as $request) {
         $result = false;
         $message = null;
         try {
             $result = $sharingHelper->publishRequest($request);
         } catch (Exception $e) {
             $message = $e->getMessage();
             $logger->log(JLog::ERROR, 'postQueuedMessages: Exception! ' . $message);
         }
         if ($result) {
             RequestHelp::processed($request->id);
         } else {
             RequestHelp::saveError($request->id, $message);
         }
     }
     if (AUTOTWEETNG_JOOCIAL && empty($requests)) {
         $logger->log(JLog::INFO, 'VirtualManager: anything else to publish?');
         VirtualManager::getInstance()->enqueueEvergreenMessage($check_date, $max);
     }
 }