From bea563dab933f82d1b68f8983ae69d846adf222b Mon Sep 17 00:00:00 2001 From: ArthurHoaro Date: Thu, 15 Aug 2013 13:58:58 +0200 Subject: [PATCH] Bridge titles more accurate (and YoutubeBridge secured) --- bridges/GoogleSearchBridge.php | 7 +++++-- bridges/IdenticaBridge.php | 7 +++++-- bridges/TwitterBridge.php | 10 +++++++--- bridges/YoutubeBridge.php | 16 +++++++++++++--- 4 files changed, 30 insertions(+), 10 deletions(-) diff --git a/bridges/GoogleSearchBridge.php b/bridges/GoogleSearchBridge.php index 45694bae..7f8f3153 100644 --- a/bridges/GoogleSearchBridge.php +++ b/bridges/GoogleSearchBridge.php @@ -15,11 +15,14 @@ */ class GoogleSearchBridge extends BridgeAbstract{ + private $request; + public function collectData(array $param){ $html = ''; if (isset($param['q'])) { /* keyword search mode */ - $html = file_get_html('http://www.google.com/search?q=' . urlencode($param['q']) . '&num=100&complete=0&tbs=qdr:y,sbd:1') or $this->returnError('No results for this query.', 404); + $this->request = $param['q']; + $html = file_get_html('http://www.google.com/search?q=' . urlencode($this->request) . '&num=100&complete=0&tbs=qdr:y,sbd:1') or $this->returnError('No results for this query.', 404); } else{ $this->returnError('You must specify a keyword (?q=...).', 400); @@ -43,7 +46,7 @@ class GoogleSearchBridge extends BridgeAbstract{ } public function getName(){ - return 'Google search'; + return (!empty($this->request) ? $this->request .' - ' : '') .'Google search'; } public function getURI(){ diff --git a/bridges/IdenticaBridge.php b/bridges/IdenticaBridge.php index a31e1a66..8d4ede50 100644 --- a/bridges/IdenticaBridge.php +++ b/bridges/IdenticaBridge.php @@ -7,11 +7,14 @@ * @use1(u="username") */ class IdenticaBridge extends BridgeAbstract{ + + private $request; public function collectData(array $param){ $html = ''; if (isset($param['u'])) { /* user timeline mode */ - $html = file_get_html('https://identi.ca/'.urlencode($param['u'])) or $this->returnError('Requested username can\'t be found.', 404); + $this->request = $param['u']; + $html = file_get_html('https://identi.ca/'.urlencode($this->request)) or $this->returnError('Requested username can\'t be found.', 404); } else { $this->returnError('You must specify an Identica username (?u=...).', 400); @@ -28,7 +31,7 @@ class IdenticaBridge extends BridgeAbstract{ } public function getName(){ - return 'Identica Bridge'; + return (!empty($this->request) ? $this->request .' - ' : '') .'Identica Bridge'; } public function getURI(){ diff --git a/bridges/TwitterBridge.php b/bridges/TwitterBridge.php index 65214126..b475e036 100644 --- a/bridges/TwitterBridge.php +++ b/bridges/TwitterBridge.php @@ -9,14 +9,18 @@ * @use2(u="username") */ class TwitterBridge extends BridgeAbstract{ + + private $request; public function collectData(array $param){ $html = ''; if (isset($param['q'])) { /* keyword search mode */ - $html = file_get_html('http://twitter.com/search/realtime?q='.urlencode($param['q']).'+include:retweets&src=typd') or $this->returnError('No results for this query.', 404); + $this->request = $param['q']; + $html = file_get_html('http://twitter.com/search/realtime?q='.urlencode($this->request).'+include:retweets&src=typd') or $this->returnError('No results for this query.', 404); } elseif (isset($param['u'])) { /* user timeline mode */ - $html = file_get_html('http://twitter.com/'.urlencode($param['u'])) or $this->returnError('Requested username can\'t be found.', 404); + $this->request = $param['u']; + $html = file_get_html('http://twitter.com/'.urlencode($this->request)) or $this->returnError('Requested username can\'t be found.', 404); } else { $this->returnError('You must specify a keyword (?q=...) or a Twitter username (?u=...).', 400); @@ -37,7 +41,7 @@ class TwitterBridge extends BridgeAbstract{ } public function getName(){ - return 'Twitter Bridge'; + return (!empty($this->request) ? $this->request .' - ' : '') .'Twitter Bridge'; } public function getURI(){ diff --git a/bridges/YoutubeBridge.php b/bridges/YoutubeBridge.php index fac0c767..8d739251 100644 --- a/bridges/YoutubeBridge.php +++ b/bridges/YoutubeBridge.php @@ -8,9 +8,19 @@ * @use1(u="username") */ class YoutubeBridge extends BridgeAbstract{ - + + private $request; + public function collectData(array $param){ - $html = file_get_html('https://www.youtube.com/user/'.urlencode($param['u']).'/videos') or $this->returnError('Could not request Youtube.', 404); + $html = ''; + if (isset($param['u'])) { /* user timeline mode */ + $this->request = $param['u']; + $html = file_get_html('https://www.youtube.com/user/'.urlencode($this->request).'/videos') or $this->returnError('Could not request Youtube.', 404); + } + else { + $this->returnError('You must specify a Youtbe username (?u=...).', 400); + } + foreach($html->find('li.channels-content-item') as $element) { $item = new \Item(); @@ -23,7 +33,7 @@ class YoutubeBridge extends BridgeAbstract{ } public function getName(){ - return 'Youtube Bridge'; + return (!empty($this->request) ? $this->request .' - ' : '') .'Youtube Bridge'; } public function getURI(){