From 35415004b9c76fc56cd6a6f3dcc51c21b051bb54 Mon Sep 17 00:00:00 2001 From: Alexis CHEMEL Date: Tue, 6 Dec 2016 22:45:52 +0100 Subject: [PATCH] Fix GoogleSearchBridge find div instead li --- bridges/GoogleSearchBridge.php | 68 ++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 31 deletions(-) diff --git a/bridges/GoogleSearchBridge.php b/bridges/GoogleSearchBridge.php index 53d8a95..4e97210 100644 --- a/bridges/GoogleSearchBridge.php +++ b/bridges/GoogleSearchBridge.php @@ -7,7 +7,7 @@ * qdr:y : in past year * sbd:1 : sort by date (will only work if qdr: is specified) */ -class GoogleSearchBridge extends BridgeAbstract{ +class GoogleSearchBridge extends BridgeAbstract { const MAINTAINER = "sebsauvage"; const NAME = "Google search"; @@ -15,40 +15,46 @@ class GoogleSearchBridge extends BridgeAbstract{ const CACHE_TIMEOUT = 1800; // 30min const DESCRIPTION = "Returns most recent results from Google search."; - const PARAMETERS = array( array( - 'q'=>array( - 'name'=>"keyword", - 'required'=>true - ) - )); + const PARAMETERS = array(array( + 'q' => array( + 'name' => "keyword", + 'required' => true + ) + )); - public function collectData(){ - $html = ''; + public function collectData() { + $html = ''; - $html = getSimpleHTMLDOM(self::URI - .'search?q=' . urlencode($this->getInput('q')) - .'&num=100&complete=0&tbs=qdr:y,sbd:1') - or returnServerError('No results for this query.'); + $html = getSimpleHTMLDOM(self::URI.'search?q='.urlencode($this->getInput('q')) + .'&num=100&complete=0&tbs=qdr:y,sbd:1') + or returnServerError('No results for this query.'); - $emIsRes = $html->find('div[id=ires]',0); - if( !is_null($emIsRes) ){ - foreach($emIsRes->find('li[class=g]') as $element) { - $item = array(); + $emIsRes = $html->find('div[id=ires]', 0); - // Extract direct URL from google href (eg. /url?q=...) - $t = $element->find('a[href]',0)->href; - $item['uri'] = ''.$t; - parse_str(parse_url($t, PHP_URL_QUERY),$parameters); - if (isset($parameters['q'])) { $item['uri'] = $parameters['q']; } - $item['title'] = $element->find('h3',0)->plaintext; - $item['content'] = $element->find('span[class=st]',0)->plaintext; - $this->items[] = $item; - } - } - } + if( !is_null($emIsRes) ) { - public function getName(){ - return $this->getInput('q') .' - Google search'; - } + foreach($emIsRes->find('div[class=g]') as $element) { + + $item = array(); + + // Extract direct URL from google href (eg. /url?q=...) + $t = $element->find('a[href]', 0)->href; + $item['uri'] = ''.$t; + parse_str(parse_url($t, PHP_URL_QUERY), $parameters); + if (isset($parameters['q'])) { $item['uri'] = $parameters['q']; } + + $item['title'] = $element->find('h3', 0)->plaintext; + + $item['content'] = $element->find('span[class=st]', 0)->plaintext; + + $this->items[] = $item; + } + } + } + + public function getName(){ + + return $this->getInput('q') .' - Google search'; + } }