From b93b13c065aab268d0fd12ce423bd45ab203642c Mon Sep 17 00:00:00 2001 From: Johannes 'josch' Schauer Date: Fri, 20 Jul 2018 13:00:02 +0200 Subject: Import upstream version 2018-07-17 --- bridges/YGGTorrentBridge.php | 143 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 bridges/YGGTorrentBridge.php (limited to 'bridges/YGGTorrentBridge.php') diff --git a/bridges/YGGTorrentBridge.php b/bridges/YGGTorrentBridge.php new file mode 100644 index 0000000..bc434d3 --- /dev/null +++ b/bridges/YGGTorrentBridge.php @@ -0,0 +1,143 @@ + array( + 'name' => 'category', + 'type' => 'list', + 'values' => array( + 'Toute les catégories' => 'all.all', + 'Film/Vidéo - Toutes les sous-catégories' => '2145.all', + 'Film/Vidéo - Animation' => '2145.2178', + 'Film/Vidéo - Animation Série' => '2145.2179', + 'Film/Vidéo - Concert' => '2145.2180', + 'Film/Vidéo - Documentaire' => '2145.2181', + 'Film/Vidéo - Émission TV' => '2145.2182', + 'Film/Vidéo - Film' => '2145.2183', + 'Film/Vidéo - Série TV' => '2145.2184', + 'Film/Vidéo - Spectacle' => '2145.2185', + 'Film/Vidéo - Sport' => '2145.2186', + 'Film/Vidéo - Vidéo-clips' => '2145.2186', + 'Audio - Toutes les sous-catégories' => '2139.all', + 'Audio - Karaoké' => '2139.2147', + 'Audio - Musique' => '2139.2148', + 'Audio - Podcast Radio' => '2139.2150', + 'Audio - Samples' => '2139.2149', + 'Jeu vidéo - Toutes les sous-catégories' => '2142.all', + 'Jeu vidéo - Autre' => '2142.2167', + 'Jeu vidéo - Linux' => '2142.2159', + 'Jeu vidéo - MacOS' => '2142.2160', + 'Jeu vidéo - Microsoft' => '2142.2162', + 'Jeu vidéo - Nintendo' => '2142.2163', + 'Jeu vidéo - Smartphone' => '2142.2165', + 'Jeu vidéo - Sony' => '2142.2164', + 'Jeu vidéo - Tablette' => '2142.2166', + 'Jeu vidéo - Windows' => '2142.2161', + 'eBook - Toutes les sous-catégories' => '2140.all', + 'eBook - Audio' => '2140.2151', + 'eBook - Bds' => '2140.2152', + 'eBook - Comics' => '2140.2153', + 'eBook - Livres' => '2140.2154', + 'eBook - Mangas' => '2140.2155', + 'eBook - Presse' => '2140.2156', + 'Emulation - Toutes les sous-catégories' => '2141.all', + 'Emulation - Emulateurs' => '2141.2157', + 'Emulation - Roms' => '2141.2158', + 'GPS - Toutes les sous-catégories' => '2141.all', + 'GPS - Applications' => '2141.2168', + 'GPS - Cartes' => '2141.2169', + 'GPS - Divers' => '2141.2170' + ) + ), + 'nom' => array( + 'name' => 'Nom', + 'description' => 'Nom du torrent', + 'type' => 'text' + ), + 'description' => array( + 'name' => 'Description', + 'description' => 'Description du torrent', + 'type' => 'text' + ), + 'fichier' => array( + 'name' => 'Fichier', + 'description' => 'Fichier du torrent', + 'type' => 'text' + ), + 'uploader' => array( + 'name' => 'Uploader', + 'description' => 'Uploader du torrent', + 'type' => 'text' + ), + + ) + ); + + public function collectData() { + + $catInfo = explode('.', $this->getInput('cat')); + $category = $catInfo[0]; + $subcategory = $catInfo[1]; + + $html = getSimpleHTMLDOM(self::URI . '/engine/search?name=' + . $this->getInput('nom') + . '&description=' + . $this->getInput('description') + . '&fichier=' + . $this->getInput('fichier') + . '&file=' + . $this->getInput('uploader') + . '&category=' + . $category + . '&sub_category=' + . $subcategory + . '&do=search') + or returnServerError('Unable to query Yggtorrent !'); + + $count = 0; + $results = $html->find('.results', 0); + if(!$results) return; + + foreach($results->find('tr') as $row) { + $count++; + if($count == 1) continue; + if($count == 12) break; + $item = array(); + $item['timestamp'] = $row->find('.hidden', 1)->plaintext; + $item['title'] = $row->find('a', 1)->plaintext; + $torrentData = $this->collectTorrentData($row->find('a', 1)->href); + $item['author'] = $torrentData['author']; + $item['content'] = $torrentData['content']; + $item['seeders'] = $row->find('td', 7)->plaintext; + $item['leechers'] = $row->find('td', 8)->plaintext; + $item['size'] = $row->find('td', 5)->plaintext; + + $this->items[] = $item; + } + + } + + public function collectTorrentData($url) { + + //For weird reason, the link we get can be invalid, we fix it. + $url_full = explode('/', $url); + $url_full[4] = urlencode($url_full[4]); + $url_full[5] = urlencode($url_full[5]); + $url_full[6] = urlencode($url_full[6]); + $url = implode('/', $url_full); + $page = getSimpleHTMLDOM($url) or returnServerError('Unable to query Yggtorrent page !'); + $author = $page->find('.informations', 0)->find('a', 4)->plaintext; + $content = $page->find('.default', 1); + return array('author' => $author, 'content' => $content); + } +} -- cgit v1.2.3