diff options
author | sgiehl <stefan@piwik.org> | 2014-05-20 22:44:41 +0400 |
---|---|---|
committer | sgiehl <stefan@piwik.org> | 2014-05-20 22:44:41 +0400 |
commit | ce3b6eb638d1c3294d4f0a8b63d75395c5b6099d (patch) | |
tree | 3f832e2cffba9d1bbd2b8396b875b9c5778365f3 | |
parent | a8780b817a744c41f1e729e8d43764389ab490bf (diff) |
refs #5114 added detection for yahoo! japan; improved handling for search enginge detection
-rw-r--r-- | core/DataFiles/SearchEngines.php | 8 | ||||
-rw-r--r-- | core/UrlHelper.php | 10 | ||||
-rw-r--r-- | tests/resources/extractSearchEngineInformationFromUrlTests.yml | 10 |
3 files changed, 25 insertions, 3 deletions
diff --git a/core/DataFiles/SearchEngines.php b/core/DataFiles/SearchEngines.php index 03209af231..a874e8fd4c 100644 --- a/core/DataFiles/SearchEngines.php +++ b/core/DataFiles/SearchEngines.php @@ -943,6 +943,12 @@ if (!isset($GLOBALS['Piwik_SearchEngines'])) { // X-recherche 'www.x-recherche.com' => array('X-Recherche', 'MOTS', 'cgi-bin/websearch?MOTS={k}'), + // Yahoo! Japan + 'search.yahoo.co.jp' => array('Yahoo! Japan', 'p', 'search?p={k}'), + 'video.search.yahoo.co.jp' => array('Yahoo! Japan Videos', 'p', 'search?p={k}'), + 'image.search.yahoo.co.jp' => array('Yahoo! Japan Images', 'p', 'search?p={k}'), + + // Yahoo 'search.yahoo.com' => array('Yahoo!', array('p', 'q'), 'search?p={k}'), // '*.search.yahoo.com' => array('Yahoo!'), // see built-in helper in Common.php @@ -953,8 +959,6 @@ if (!isset($GLOBALS['Piwik_SearchEngines'])) { 'espanol.yahoo.com' => array('Yahoo!'), 'qc.yahoo.com' => array('Yahoo!'), 'one.cn.yahoo.com' => array('Yahoo!'), - 'video.search.yahoo.co.jp' => array('Yahoo!'), - 'image.search.yahoo.co.jp' => array('Yahoo!'), // Powered by Yahoo APIs 'www.cercato.it' => array('Yahoo!', 'q'), diff --git a/core/UrlHelper.php b/core/UrlHelper.php index 2ce26ba165..b99f457f40 100644 --- a/core/UrlHelper.php +++ b/core/UrlHelper.php @@ -286,8 +286,18 @@ class UrlHelper $searchEngines = Common::getSearchEngineUrls(); $hostPattern = self::getLossyUrl($referrerHost); + /* + * Try to get the best matching 'host' in definitions + * 1. check if host + path matches an definition + * 2. check if host only matches + * 3. check if host pattern + path matches + * 4. check if host pattern matches + * 5. special handling + */ if (array_key_exists($referrerHost . $referrerPath, $searchEngines)) { $referrerHost = $referrerHost . $referrerPath; + } elseif (array_key_exists($referrerHost, $searchEngines)) { + // no need to change host } elseif (array_key_exists($hostPattern . $referrerPath, $searchEngines)) { $referrerHost = $hostPattern . $referrerPath; } elseif (array_key_exists($hostPattern, $searchEngines)) { diff --git a/tests/resources/extractSearchEngineInformationFromUrlTests.yml b/tests/resources/extractSearchEngineInformationFromUrlTests.yml index 84cde86512..1c519bdc78 100644 --- a/tests/resources/extractSearchEngineInformationFromUrlTests.yml +++ b/tests/resources/extractSearchEngineInformationFromUrlTests.yml @@ -379,9 +379,17 @@ keywords: 'searchterm' - url: 'http://image.search.yahoo.co.jp/search?ei=UTF-8&fr=top_ga1_sa&p=%EF%BD%94%EF%BD%8F+%EF%BD%88%EF%BD%85%EF%BD%81%EF%BD%92%EF%BD%94+%EF%BD%8C%EF%BD%8F%EF%BD%87%EF%BD%8F' - engine: 'Yahoo!' + engine: 'Yahoo! Japan Images' keywords: 'to heart logo' +- url: 'http://video.search.yahoo.co.jp/search?tt=c&ei=UTF-8&fr=sfp_as&aq=-1&oq=&p=piwik&meta=vc%3D' + engine: 'Yahoo! Japan Videos' + keywords: 'piwik' + +- url: 'http://search.yahoo.co.jp/search?ei=UTF-8&p=piwik' + engine: 'Yahoo! Japan' + keywords: 'piwik' + - url: 'http://www.claro-search.com/?q=logiciels+pour+%C3%A9crire+en+japonais+avec+windows+xp&s=web&as=0&rlz=0&babsrc=SP_clro' engine: 'Claro Search' keywords: 'logiciels pour écrire en japonais avec windows xp' |