From 00570ce1b41702dec0aa76cf0c731686b0a8c462 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20T?= Date: Mon, 30 Apr 2018 23:18:39 +0200 Subject: [PATCH] [ETTVBridge] New bridge, first push (#680) * [ETTVBridge] New bridge --- bridges/ETTVBridge.php | 142 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 bridges/ETTVBridge.php diff --git a/bridges/ETTVBridge.php b/bridges/ETTVBridge.php new file mode 100644 index 0000000..6da6d5e --- /dev/null +++ b/bridges/ETTVBridge.php @@ -0,0 +1,142 @@ + array( + 'name' => 'Keywords', + 'required' => true + ), + 'cat' => array( + 'type' => 'list', + 'name' => 'Category', + 'values' => array( + '(ALL TYPES)' => '0', + 'Anime: Movies' => '73', + 'Anime: Dubbed/Subbed' => '74', + 'Anime: Others' => '75', + 'Books: Ebooks' => '53', + 'Books: Magazines' => '54', + 'Books: Comics' => '55', + 'Books: Audio' => '56', + 'Books: Others' => '68', + 'Games: Windows' => '57', + 'Games: Android' => '58', + 'Games: Others' => '71', + 'Movies: HD 1080p' => '1', + 'Movies: HD 720p' => '2', + 'Movies: UltraHD/4K' => '3', + 'Movies: XviD' => '42', + 'Movies: X264/H264' => '47', + 'Movies: 3D' => '49', + 'Movies: Dubs/Dual Audio' => '51', + 'Movies: CAM/TS' => '65', + 'Movies: BluRay Disc/Remux' => '66', + 'Movies: DVDR' => '67', + 'Movies: HEVC/x265' => '76', + 'Music: MP3' => '59', + 'Music: FLAC' => '60', + 'Music: Music Videos' => '61', + 'Music: Others' => '69', + 'Software: Windows' => '62', + 'Software: Android' => '63', + 'Software: Mac' => '64', + 'Software: Others' => '70', + 'TV: HD/X264/H264' => '41', + 'TV: SD/X264/H264' => '5', + 'TV: TV Packs' => '7', + 'TV: SD/XVID' => '50', + 'TV: Sport' => '72', + 'TV: HEVC/x265' => '77', + 'Unsorted: Unsorted' => '78' + ), + 'defaultValue' => '(ALL TYPES)' + ), + 'status' => array( + 'type' => 'list', + 'name' => 'Status', + 'values' => array( + 'Active Transfers' => '0', + 'Included Dead' => '1', + 'Only Dead' => '2' + ), + 'defaultValue' => 'Included Dead' + ), + 'lang' => array( + 'type' => 'list', + 'name' => 'Lang', + 'values' => array( + '(ALL)' => '0', + 'Arabic' => '17', + 'Chinese ' => '10', + 'Danish' => '13', + 'Dutch' => '11', + 'English' => '1', + 'Finnish' => '18', + 'French' => '2', + 'German' => '3', + 'Greek' => '15', + 'Hindi' => '8', + 'Italian' => '4', + 'Japanese' => '5', + 'Korean' => '9', + 'Polish' => '14', + 'Russian' => '7', + 'Spanish' => '6', + 'Turkish' => '16' + ), + 'defaultValue' => '(ALL)' + ) + )); + + public function collectData(){ + // No control on inputs, because all have defaultValue set + $query_str = 'torrents-search.php'; + $query_str .= '?search=' . urlencode('+'.str_replace(' ', ' +', $this->getInput('query'))); + $query_str .= '&cat=' . $this->getInput('cat'); + $query_str .= 'incldead&=' . $this->getInput('status'); + $query_str .= '&lang=' . $this->getInput('lang'); + $query_str .= '&sort=id&order=desc'; + + // Get results page + $html = getSimpleHTMLDOM(self::URI . $query_str) + or returnServerError('Could not request ' . $this->getName()); + + // Loop on each entry + foreach($html->find('table.table tr') as $element) { + if($element->parent->tag == 'thead') continue; + $entry = $element->find('td', 1)->find('a', 0); + + // retrieve result page to get more details + $link = rtrim(self::URI, "/") . $entry->href; + $page = getSimpleHTMLDOM($link) + or returnServerError('Could not request page ' . $link); + + // get details & download links + $details = $page->find('fieldset.download table', 0); // WHAT?? It should be the second oneā€¦ + $dllinks = $page->find('div#downloadbox table', 0); + + // fill item + $item = array(); + $item['author'] = $details->children(6)->children(1)->plaintext; + $item['title'] = $entry->title; + $item['uri'] = $dllinks->children(0)->children(0)->children(0)->href; + $item['timestamp'] = strtotime($details->children(7)->children(1)->plaintext); + $item['content'] = ''; + $item['content'] .= '
Name: ' . $details->children(0)->children(1)->innertext; + $item['content'] .= '
Lang: ' . $details->children(3)->children(1)->innertext; + $item['content'] .= '
Size: ' . $details->children(4)->children(1)->innertext; + $item['content'] .= '
Hash: ' . $details->children(5)->children(1)->innertext; + foreach($dllinks->children(0)->children(1)->find('a') as $dl) { + $item['content'] .= '
' . $dl->outertext; + } + $item['content'] .= '

' . $details->children(1)->children(0)->innertext; + $this->items[] = $item; + } + } +}