function onJotcacheRecache($starturl, $jcplugin, $jcparams, $jcstates) { if ($jcplugin != 'recache') { return; } $params = JComponentHelper::getParams('com_jotcache'); $logging = $params->get('recachelog', 0) == 1 ? true : false; $database = JFactory::getDBO(); $sql = $database->getQuery(true); $sql->select('fname,uri,browser')->from('#__jotcache')->where("recache = 1"); $database->setQuery($sql); $rows = $database->loadObjectList(); $browsers = BrowserAgents::getBrowserAgents(); $hits = array(); $warns = 0; $delcount = 5; $delpages = array(); $runner = new RecacheRunner(); foreach ($rows as $row) { if (defined('JOTCACHE_RECACHE_BROWSER')) { if (!file_exists(JPATH_ROOT . '/cache/page/jotcache_recache_flag_tmp.php')) { return; } } $browser = array_key_exists($row->browser, $browsers) ? $browsers[$row->browser][1] : BrowserAgents::getDefaultAgent(); $agent = $browser . ' jotcache \\r\\n'; $pos = strpos(trim($row->uri), 'http'); if ($pos === 0) { $ret = $runner->getData($row->uri, $agent); } else { preg_match('#http[s]?://[^/\\n]*#', $starturl, $matches); $root = $matches[0]; $ret = $runner->getData($root . $row->uri, $agent); } if ($ret === false) { $warns++; if ($logging) { $browser_err = $row->browser == "" ? '' : '(' . $row->browser . ')'; JLog::add(sprintf('WARN uri%s `%s` was not accessed during recache', $browser_err, $row->uri), JLog::INFO, 'jotcache.recache'); } if ($warns > 9) { return array("recache", "STOPPED after 10 WARNs", $hits); } } else { if (array_key_exists($row->browser, $hits)) { $hits[$row->browser] += 1; } else { $hits[$row->browser] = 1; } } $delpages[] = $row->fname; if ($delcount === 0) { $this->clearRecacheFlags($delpages); $delcount = 6; } $delcount--; } $this->clearRecacheFlags($delpages); return array("recache", "DONE", $hits); }
function onJotcacheRecache($starturl, $jcplugin, $jcparams, $jcstates) { $plgParams = $this->params; if ($jcplugin != 'crawlerext') { return; } $this->baseUrl = $starturl; $params = JComponentHelper::getParams('com_jotcache'); $database = JFactory::getDBO(); /* @var $query JDatabaseQuery */ $query = $database->getQuery(true); $query->update($database->quoteName('#__jotcache'))->set($database->quoteName('agent') . ' = ' . $database->quote(0)); $database->setQuery($query)->query(); $this->logging = $params->get('recachelog', 0) == 1 ? true : false; if ($this->logging) { JLog::add(sprintf('....running in plugin %s', $jcplugin), JLog::INFO, 'jotcache.recache'); } $noHtmlFilter = JFilterInput::getInstance(); $depth = $noHtmlFilter->clean($jcstates['depth'], 'int'); $depth++; $activeBrowsers = BrowserAgents::getActiveBrowserAgents(); $this->hits = array(); $ret = ''; foreach ($activeBrowsers as $browser => $def) { $agent = $def[1] . ' jotcache \\r\\n'; $ret = $this->crawl_page($starturl, $browser, $agent, $depth); if ($ret == 'STOP') { break; } } return array("crawlerext", $ret, $this->hits); }
private static function loadAgents() { $lang = JFactory::getLanguage(); $lang->load('com_jotcache', JPATH_ADMINISTRATOR, null, false, true); self::$browsers = array("chrome" => array('Chrome', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1284.0 Safari/537.13'), "firefox" => array('Firefox', 'Mozilla/6.0 (Windows NT 6.2; WOW64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1'), "msie6" => array('IE 6.0', 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)'), "msie7" => array('IE 7.0', 'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)'), "msie8" => array('IE 8.0', 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; SLCC1; .NET CLR 1.1.4322)'), "msie9" => array('IE 9.0', 'Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)'), "msie10" => array('IE 10.0', 'Mozilla/5.0 (compatible; MSIE 10.6; Windows NT 6.1; Trident/5.0; InfoPath.2; SLCC1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727) 3gpp-gba UNTRUSTED/1.0'), "msie11" => array('IE 11.0', 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko'), "safari" => array('Safari', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2'), "desktop" => array(JText::_('JOTCACHE_CLIENT_DESKTOP'), 'Mozilla/5.0 (compatible; Konqueror/4.0; Linux) KHTML/4.0.5 (like Gecko)'), "iPad" => array('iPad', 'Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25'), "iPhone" => array('iPhone', 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/531.22.7')); self::$browsers['tablet'] = array(JText::_('JOTCACHE_CLIENT_TABLET'), 'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/2.1 Mobile Safari/535.19 Silk-Accelerated=true'); self::$browsers['phone'] = array(JText::_('JOTCACHE_CLIENT_PHONE'), 'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; Galaxy S II Build/GRJ22) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'); }
private static function _loadAgents() { $lang = JFactory::getLanguage(); $lang->load('com_jotcache', JPATH_ADMINISTRATOR, null, false, true); self::$browsers = array("chrome" => array('Chrome', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1284.0 Safari/537.13'), "firefox" => array('Firefox', 'Mozilla/6.0 (Windows NT 6.2; WOW64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1'), "msie" => array('IE', 'Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)'), "msie6.0" => array('IE 6.0', 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)'), "msie7.0" => array('IE 7.0', 'Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)'), "msie8.0" => array('IE 8.0', 'Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; SLCC1; .NET CLR 1.1.4322)'), "msie9.0" => array('IE 9.0', 'Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)'), "safari" => array('Safari', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2')); self::$browsers['tablet'] = array(JText::_('JOTCACHE_CLIENT_TABLET'), 'Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25'); self::$browsers['phone'] = array(JText::_('JOTCACHE_CLIENT_PHONE'), 'Mozilla/5.0 (Linux; U; Android 4.0.3; de-de; Galaxy S II Build/GRJ22) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'); }
public function __construct() { $this->browsers = BrowserAgents::getBrowserAgents(); parent::__construct(); }