mirror of
https://github.com/RSS-Bridge/rss-bridge.git
synced 2024-11-25 19:06:23 +03:00
Added YGGTorrentBridge.
This commit is contained in:
parent
539d9f1f06
commit
aa0ff1c9b1
1 changed files with 138 additions and 0 deletions
138
bridges/YGGTorrentBridge.php
Normal file
138
bridges/YGGTorrentBridge.php
Normal file
|
@ -0,0 +1,138 @@
|
|||
<?php
|
||||
|
||||
/* This is a mashup of FlickrExploreBridge by sebsauvage and FlickrTagBridge
|
||||
* by erwang.providing the functionality of both in one.
|
||||
*/
|
||||
class YGGTorrentBridge extends BridgeAbstract {
|
||||
|
||||
const MAINTAINER = 'teromene';
|
||||
const NAME = 'Yggtorrent Bridge';
|
||||
const URI = 'https://yggtorrent.is';
|
||||
const DESCRIPTION = 'Returns torrent search from Yggtorrent';
|
||||
|
||||
const PARAMETERS = array(
|
||||
array(
|
||||
"cat" => 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);
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue