Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsgiehl <stefan@piwik.org>2014-05-30 01:48:56 +0400
committersgiehl <stefan@piwik.org>2014-05-30 01:48:56 +0400
commitf85f7d61d9a398b812920c6121461d518349e21a (patch)
tree6c2d61f10bcfaa4babc7e230433a15f96827bb1b
parentb826190f10c4cad57b542e8634f3bce0607aba42 (diff)
reimplemented caching; fixed detection of BOT 'os'
-rw-r--r--composer.lock8
-rw-r--r--core/CacheFile.php2
-rw-r--r--core/Tracker/Settings.php12
-rw-r--r--libs/UserAgentParser/UserAgentParser.php3
-rw-r--r--piwik.php20
-rw-r--r--plugins/DevicesDetection/DevicesDetection.php2
-rw-r--r--plugins/DevicesDetection/functions.php6
-rw-r--r--tests/PHPUnit/bootstrap.php6
-rw-r--r--tests/PHPUnit/proxy/includes.php4
9 files changed, 41 insertions, 22 deletions
diff --git a/composer.lock b/composer.lock
index a9822dc62a..a440208ae1 100644
--- a/composer.lock
+++ b/composer.lock
@@ -100,12 +100,12 @@
"source": {
"type": "git",
"url": "https://github.com/piwik/device-detector.git",
- "reference": "d3ccb7938fa272a857c279850ffbb3d8fe04c0b7"
+ "reference": "863ae43f5c68c15ce110516a0f7b11477e2a01c0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/piwik/device-detector/zipball/d3ccb7938fa272a857c279850ffbb3d8fe04c0b7",
- "reference": "d3ccb7938fa272a857c279850ffbb3d8fe04c0b7",
+ "url": "https://api.github.com/repos/piwik/device-detector/zipball/863ae43f5c68c15ce110516a0f7b11477e2a01c0",
+ "reference": "863ae43f5c68c15ce110516a0f7b11477e2a01c0",
"shasum": ""
},
"require": {
@@ -139,7 +139,7 @@
"parser",
"useragent"
],
- "time": "2014-05-25 17:45:14"
+ "time": "2014-05-29 20:51:28"
},
{
"name": "symfony/console",
diff --git a/core/CacheFile.php b/core/CacheFile.php
index 5d9000332f..f75657f176 100644
--- a/core/CacheFile.php
+++ b/core/CacheFile.php
@@ -16,7 +16,7 @@ use Exception;
* It is for example used by the Tracker process to cache various settings and websites attributes in tmp/cache/tracker/*
*
*/
-class CacheFile
+class CacheFile implements \DeviceDetector\Cache\CacheInterface
{
// for testing purposes since tests run on both CLI/FPM (changes in CLI can't invalidate
// opcache in FPM, so we have to invalidate before reading)
diff --git a/core/Tracker/Settings.php b/core/Tracker/Settings.php
index 3eed338f3b..251046ca29 100644
--- a/core/Tracker/Settings.php
+++ b/core/Tracker/Settings.php
@@ -38,8 +38,10 @@ class Settings
$userAgent = $this->request->getUserAgent();
$deviceDetector = new DeviceDetector($userAgent);
- #$deviceDetector->setCache(new CacheFile('tracker', 86400));
+ $deviceDetector->discardBotInformation();
+ $deviceDetector->setCache(new CacheFile('tracker', 86400));
$deviceDetector->parse();
+
$aBrowserInfo = $deviceDetector->getClient();
if ($aBrowserInfo['type'] != 'browser') {
// for now only track browsers
@@ -49,8 +51,12 @@ class Settings
$browserName = !empty($aBrowserInfo['short_name']) ? $aBrowserInfo['short_name'] : 'UNK';
$browserVersion = !empty($aBrowserInfo['version']) ? $aBrowserInfo['version'] : '';
- $os = $deviceDetector->getOS();
- $os = empty($os['short_name']) ? 'UNK' : $os['short_name'];
+ if ($deviceDetector->isBot()) {
+ $os = 'BOT';
+ } else {
+ $os = $deviceDetector->getOS();
+ $os = empty($os['short_name']) ? 'UNK' : $os['short_name'];
+ }
$browserLang = substr($this->request->getBrowserLanguage(), 0, 20); // limit the length of this string to match db
$configurationHash = $this->getConfigHash(
diff --git a/libs/UserAgentParser/UserAgentParser.php b/libs/UserAgentParser/UserAgentParser.php
index c0c8fea1ce..009bc5a785 100644
--- a/libs/UserAgentParser/UserAgentParser.php
+++ b/libs/UserAgentParser/UserAgentParser.php
@@ -694,6 +694,9 @@ class UserAgentParser
}
if(class_exists('DeviceDetector\\Parser\\OperatingSystem')) {
+ if ($osId == 'BOT') {
+ return 'Bot';
+ }
return DeviceDetector\Parser\OperatingSystem::getNameFromId($osId);
}
return false;
diff --git a/piwik.php b/piwik.php
index 00c2041a52..03e405cdd9 100644
--- a/piwik.php
+++ b/piwik.php
@@ -40,6 +40,16 @@ if (!defined('PIWIK_INCLUDE_PATH')) {
@ignore_user_abort(true);
+/*
+ * Manually require needed vendor libraries, as composers autorequire would do too much
+ */
+if (file_exists(PIWIK_INCLUDE_PATH . '/vendor/autoload.php')) {
+ $vendorDirectory = PIWIK_INCLUDE_PATH . '/vendor';
+} else {
+ $vendorDirectory = PIWIK_INCLUDE_PATH . '/../..';
+}
+require_once $vendorDirectory . '/autoload.php';
+
require_once PIWIK_INCLUDE_PATH . '/core/Plugin/Controller.php';
require_once PIWIK_INCLUDE_PATH . '/core/Plugin/ControllerAdmin.php';
@@ -82,16 +92,6 @@ require_once PIWIK_INCLUDE_PATH . '/core/Filesystem.php';
require_once PIWIK_INCLUDE_PATH . '/core/Cookie.php';
require_once PIWIK_INCLUDE_PATH . '/core/Loader.php';
-/*
- * Manually require needed vendor libraries, as composers autorequire would do too much
- */
-if (file_exists(PIWIK_INCLUDE_PATH . '/vendor/autoload.php')) {
- $vendorDirectory = PIWIK_INCLUDE_PATH . '/vendor';
-} else {
- $vendorDirectory = PIWIK_INCLUDE_PATH . '/../..';
-}
-require_once $vendorDirectory . '/autoload.php';
-
session_cache_limiter('nocache');
@date_default_timezone_set('UTC');
diff --git a/plugins/DevicesDetection/DevicesDetection.php b/plugins/DevicesDetection/DevicesDetection.php
index 5d6312e8f0..9b8cf601d1 100644
--- a/plugins/DevicesDetection/DevicesDetection.php
+++ b/plugins/DevicesDetection/DevicesDetection.php
@@ -244,7 +244,7 @@ class DevicesDetection extends \Piwik\Plugin
$userAgent = $request->getUserAgent();
$UAParser = new DeviceDetector($userAgent);
- #$UAParser->setCache(new CacheFile('tracker', 86400));
+ $UAParser->setCache(new CacheFile('tracker', 86400));
$UAParser->parse();
$deviceInfo['config_browser_name'] = $UAParser->getClient("type") == 'browser' ? $UAParser->getClient("short_name") : 'UNK';
$deviceInfo['config_browser_version'] = $UAParser->getClient("type") == 'browser' ? $UAParser->getClient("version") : 'UNK';
diff --git a/plugins/DevicesDetection/functions.php b/plugins/DevicesDetection/functions.php
index b8ff3a8854..085a35814c 100644
--- a/plugins/DevicesDetection/functions.php
+++ b/plugins/DevicesDetection/functions.php
@@ -165,6 +165,9 @@ function getModelName($label)
function getOSFamilyFullNameExtended($label)
{
+ if ($label == 'BOT') {
+ return 'Bot';
+ }
$label = OperatingSystemParser::getOsFamily($label);
if($label !== false) {
return $label;
@@ -183,6 +186,9 @@ function getOsFamilyLogoExtended($label)
function getOsFullNameExtended($label)
{
+ if ($label == 'BOT') {
+ return 'Bot';
+ }
if (!empty($label) && $label != ";") {
$os = substr($label, 0, 3);
$ver = substr($label, 4, 15);
diff --git a/tests/PHPUnit/bootstrap.php b/tests/PHPUnit/bootstrap.php
index 1dcb995b0e..c951e4a3c6 100644
--- a/tests/PHPUnit/bootstrap.php
+++ b/tests/PHPUnit/bootstrap.php
@@ -27,6 +27,9 @@ if (!defined('PIWIK_INCLUDE_SEARCH_PATH')) {
error_reporting(E_ALL | E_NOTICE);
@date_default_timezone_set('UTC');
+require_once file_exists(PIWIK_INCLUDE_PATH . '/vendor/autoload.php')
+ ? PIWIK_INCLUDE_PATH . '/vendor/autoload.php' // Piwik is the main project
+ : PIWIK_INCLUDE_PATH . '/../../autoload.php'; // Piwik is installed as a dependency
require_once PIWIK_INCLUDE_PATH . '/libs/upgradephp/upgrade.php';
require_once PIWIK_INCLUDE_PATH . '/core/testMinimumPhpVersion.php';
@@ -37,9 +40,6 @@ require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/IntegrationTestCase.php';
require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/FakeAccess.php';
require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/MockPiwikOption.php';
require_once PIWIK_INCLUDE_PATH . '/tests/PHPUnit/TestingEnvironment.php';
-require_once file_exists(PIWIK_INCLUDE_PATH . '/vendor/autoload.php')
- ? PIWIK_INCLUDE_PATH . '/vendor/autoload.php' // Piwik is the main project
- : PIWIK_INCLUDE_PATH . '/../../autoload.php'; // Piwik is installed as a dependency
\Piwik\Profiler::setupProfilerXHProf( $mainRun = true );
diff --git a/tests/PHPUnit/proxy/includes.php b/tests/PHPUnit/proxy/includes.php
index 0ffce4642b..2ecb204244 100644
--- a/tests/PHPUnit/proxy/includes.php
+++ b/tests/PHPUnit/proxy/includes.php
@@ -9,6 +9,10 @@ if (!defined('PIWIK_USER_PATH')) {
define('PIWIK_USER_PATH', PIWIK_INCLUDE_PATH);
}
+require_once file_exists(PIWIK_INCLUDE_PATH . '/vendor/autoload.php')
+ ? PIWIK_INCLUDE_PATH . '/vendor/autoload.php' // Piwik is the main project
+ : PIWIK_INCLUDE_PATH . '/../../autoload.php'; // Piwik is installed as a dependency
+
require_once PIWIK_INCLUDE_PATH . '/core/Loader.php';
require_once PIWIK_INCLUDE_PATH . '/core/EventDispatcher.php';
require_once PIWIK_INCLUDE_PATH . '/core/Piwik.php';