From ab3582e2b4323b4f8c4856c2f8aa0af5fe838473 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Mon, 8 Dec 2014 19:39:57 +0100 Subject: [PATCH] Adding possibility to have several list separated by ';', + code to parse date correctly. --- bridges/ThePirateBayBridge.php | 81 +++++++++++++++++++++++++--------- 1 file changed, 60 insertions(+), 21 deletions(-) diff --git a/bridges/ThePirateBayBridge.php b/bridges/ThePirateBayBridge.php index 9721e43..3482dfc 100644 --- a/bridges/ThePirateBayBridge.php +++ b/bridges/ThePirateBayBridge.php @@ -1,42 +1,81 @@ find('font',0)->plaintext; + $guessedDate = explode("Uploaded ",$guessedDate)[1]; + $guessedDate = explode(",",$guessedDate)[0]; + if (count(explode(":",$guessedDate)) == 1) + { + $guessedDate = strptime($guessedDate, '%m-%d %Y'); + $timestamp = mktime(0, 0, 0, + $guessedDate['tm_mon'] + 1, $guessedDate['tm_mday'], 1900+$guessedDate['tm_year']); + } + else if (explode(" ",$guessedDate)[0] == 'Today') + { + $guessedDate = strptime(explode(" ",$guessedDate)[1], '%H:%M'); + $timestamp = mktime($guessedDate['tm_hour'], $guessedDate['tm_min'], 0, + date('m'), date('d'), date('Y')); + + } + else if (explode(" ",$guessedDate)[0] == 'Y-day') + { + $guessedDate = strptime(explode(" ",$guessedDate)[1], '%H:%M'); + $timestamp = mktime($guessedDate['tm_hour'], $guessedDate['tm_min'], 0, + date('m',time()-24*60*60), date('d',time()-24*60*60), date('Y',time()-24*60*60)); + + } + else + { + $guessedDate = strptime($guessedDate, '%m-%d %H:%M'); + $timestamp = mktime($guessedDate['tm_hour'], $guessedDate['tm_min'], 0, + $guessedDate['tm_mon'] + 1, $guessedDate['tm_mday'], date('Y')); + } + return $timestamp; + } + + if (!isset($param['q'])) - $this->returnError('You must specify a keyword (?q=...)', 400); + $this->returnError('You must specify keywords (?q=...)', 400); - $html = file_get_html('https://thepiratebay.se/search/'.rawurlencode($param['q']).'/0/99/0') or $this->returnError('Could not request TPB.', 404); + $keywordsList = explode(";",$param['q']); + foreach($keywordsList as $keywords){ + $html = file_get_html('https://thepiratebay.se/search/'.rawurlencode($keywords).'/0/3/0') or $this->returnError('Could not request TPB.', 404); - if($html->find('table#searchResult', 0) == FALSE) - $this->returnError('No result for this query', 404); + if ($html->find('table#searchResult', 0) == FALSE) + $this->returnError('No result for query '.$keywords, 404); - foreach($html->find('tr') as $element) { - $item = new \Item(); - $item->uri = 'https://thepiratebay.se/'.$element->find('a.detLink',0)->href; - $item->id = $item->uri; - $item->timestamp = time(); - $item->title = $element->find('a.detLink',0)->plaintext; - $item->seeders = (int)$element->find('td',2)->plaintext; - $item->leechers = (int)$element->find('td',3)->plaintext; - $item->content = $element->find('font',0)->plaintext.'
seeders: '.$item->seeders.' | leechers: '.$item->leechers.'
download'; - if(!empty($item->title)) - $this->items[] = $item; - } + + foreach($html->find('tr') as $element) { + $item = new \Item(); + $item->uri = 'https://thepiratebay.se/'.$element->find('a.detLink',0)->href; + $item->id = $item->uri; + $item->timestamp = parseDateTimestamp($element); + $item->title = $element->find('a.detLink',0)->plaintext; + $item->seeders = (int)$element->find('td',2)->plaintext; + $item->leechers = (int)$element->find('td',3)->plaintext; + $item->content = $element->find('font',0)->plaintext.'
seeders: '.$item->seeders.' | leechers: '.$item->leechers.'
download'; + if(!empty($item->title)) + $this->items[] = $item; + } + } } - + public function getName(){ return 'The Pirate Bay'; }