Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
 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');
 }
Exemplo n.º 4
0
 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');
 }
Exemplo n.º 5
0
 public function __construct()
 {
     $this->browsers = BrowserAgents::getBrowserAgents();
     parent::__construct();
 }