diff --git a/bridges/ThePirateBayBridge.php b/bridges/ThePirateBayBridge.php
index 3fe61de9..33f5af86 100644
--- a/bridges/ThePirateBayBridge.php
+++ b/bridges/ThePirateBayBridge.php
@@ -4,14 +4,31 @@ class ThePirateBayBridge extends BridgeAbstract{
const MAINTAINER = "mitsukarenai";
const NAME = "The Pirate Bay";
const URI = "https://thepiratebay.org/";
- const DESCRIPTION = "Returns results for the keywords. You can put several list of keywords by separating them with a semicolon (e.g. \"one show;another show\")";
+ const DESCRIPTION = "Returns results for the keywords. You can put several list of keywords by separating them with a semicolon (e.g. \"one show;another show\"). Category based search needs the category number as input. User based search takes the Uploader name. Search can be done in a specified category";
const PARAMETERS = array( array(
'q'=>array(
'name'=>'keywords, separated by semicolons',
'exampleValue'=>'first list;second list;…',
'required'=>true
- )
+ ),
+ 'crit'=>array(
+ 'type'=>'list',
+ 'name'=>'Search type',
+ 'values'=>array(
+ 'search'=>'search',
+ 'category'=>'cat',
+ 'user'=>'usr'
+ )
+ ),
+ 'cat_check'=>array(
+ 'type'=>'checkbox',
+ 'name'=>'Specify category for normal search ?',
+ ),
+ 'cat'=>array(
+ 'name'=>'Category number',
+ 'exampleValue'=>'100, 200… See TPB for category number'
+ ),
));
public function collectData(){
@@ -49,11 +66,37 @@ class ThePirateBayBridge extends BridgeAbstract{
return $timestamp;
}
-
+ $catBool = $this->getInput('cat_check');
+ if ($catBool)
+ {
+ $catNum = $this->getInput('cat');
+ }
+ $critList = $this->getInput('crit');
$keywordsList = explode(";",$this->getInput('q'));
foreach($keywordsList as $keywords){
- $html = $this->getSimpleHTMLDOM(self::URI.'search/'.rawurlencode($keywords).'/0/3/0')
- or $this->returnServerError('Could not request TPB.');
+ switch ($critList) {
+ case "search":
+ if ($catBool == FALSE)
+ {
+ $html = $this->getSimpleHTMLDOM(self::URI.'search/'.rawurlencode($keywords).'/0/3/0')
+ or $this->returnServerError('Could not request TPB.');
+ }
+ else
+ {
+ $html = $this->getSimpleHTMLDOM(self::URI.'search/'.rawurlencode($keywords).'/0/3/'.rawurlencode($catNum))
+ or $this->returnServerError('Could not request TPB.');
+ }
+ break;
+ case "cat":
+ $html = $this->getSimpleHTMLDOM(self::URI.'browse/'.rawurlencode($keywords).'/0/3/0')
+ or $this->returnServerError('Could not request TPB.');
+ break;
+ case "usr":
+ $html = $this->getSimpleHTMLDOM(self::URI.'user/'.rawurlencode($keywords).'/0/3/0')
+ or $this->returnServerError('Could not request TPB.');
+ break;
+ }
+
if ($html->find('table#searchResult', 0) == FALSE)
$this->returnServerError('No result for query '.$keywords);
@@ -61,13 +104,14 @@ class ThePirateBayBridge extends BridgeAbstract{
foreach($html->find('tr') as $element) {
$item = array();
- $item['uri'] = self::URI.$element->find('a.detLink',0)->href;
- $item['id'] = $item['uri'];
+ $item['uri'] = $element->find('a',3)->href;
+ $item['id'] = self::URI.$element->find('a.detLink',0)->href;
$item['timestamp'] = parseDateTimestamp($element);
+ $item['author'] = $element->find('a.detDesc',0)->plaintext;
$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';
+ $item['content'] = $element->find('font',0)->plaintext.'
seeders: '.$item['seeders'].' | leechers: '.$item['leechers'].'
info page';
if(isset($item['title']))
$this->items[] = $item;
}