/** * _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); } }