From aa0ff1c9b14efdb8ff97c9068ca896fe8045b0a4 Mon Sep 17 00:00:00 2001 From: teromene Date: Wed, 18 Apr 2018 21:57:27 +0200 Subject: [PATCH] Added YGGTorrentBridge. --- bridges/YGGTorrentBridge.php | 138 +++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 bridges/YGGTorrentBridge.php diff --git a/bridges/YGGTorrentBridge.php b/bridges/YGGTorrentBridge.php new file mode 100644 index 0000000..777a414 --- /dev/null +++ b/bridges/YGGTorrentBridge.php @@ -0,0 +1,138 @@ + 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; + foreach($html->find(".results", 0)->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[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); + } +}