use engine request for torrent search
This commit is contained in:
parent
0bd726d897
commit
4941a6aa58
|
@ -1,9 +1,13 @@
|
|||
<?php
|
||||
$_1337x_url = "https://1337x.to/search/$query/1/";
|
||||
class _1337xRequest extends EngineRequest {
|
||||
public function get_request_url() {
|
||||
$query = urlencode($this->query);
|
||||
return "https://1337x.to/search/$query/1/";
|
||||
}
|
||||
|
||||
public function get_results() {
|
||||
$response = curl_multi_getcontent($this->ch);
|
||||
|
||||
function get_1337x_results($response)
|
||||
{
|
||||
global $config;
|
||||
$xpath = get_xpath($response);
|
||||
$results = array();
|
||||
|
||||
|
@ -31,4 +35,5 @@
|
|||
|
||||
return $results;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -4,68 +4,32 @@
|
|||
$this->query = $query;
|
||||
$this->page = $page;
|
||||
|
||||
// TODO make these engine requests
|
||||
require "engines/bittorrent/thepiratebay.php";
|
||||
require "engines/bittorrent/rutor.php";
|
||||
require "engines/bittorrent/nyaa.php";
|
||||
require "engines/bittorrent/yts.php";
|
||||
require "engines/bittorrent/torrentgalaxy.php";
|
||||
require "engines/bittorrent/1337x.php";
|
||||
require "engines/bittorrent/sukebei.php";
|
||||
|
||||
$query = urlencode($query);
|
||||
|
||||
$torrent_urls = array(
|
||||
$thepiratebay_url,
|
||||
$rutor_url,
|
||||
$nyaa_url,
|
||||
$yts_url,
|
||||
$torrentgalaxy_url,
|
||||
$_1337x_url,
|
||||
$sukebei_url
|
||||
$this->requests = array(
|
||||
new PirateBayRequest($query, $page, $mh, $config),
|
||||
new _1337xRequest($query, $page, $mh, $config),
|
||||
new NyaaRequest($query, $page, $mh, $config),
|
||||
new RutorRequest($query, $page, $mh, $config),
|
||||
new SukebeiRequest($query, $page, $mh, $config),
|
||||
new TorrentGalaxyRequest($query, $page, $mh, $config),
|
||||
new YTSRequest($query, $page, $mh, $config),
|
||||
);
|
||||
|
||||
$this->chs = array();
|
||||
|
||||
foreach ($torrent_urls as $url)
|
||||
{
|
||||
$ch = curl_init($url);
|
||||
curl_setopt_array($ch, $config->curl_settings);
|
||||
array_push($this->chs, $ch);
|
||||
curl_multi_add_handle($mh, $ch);
|
||||
}
|
||||
}
|
||||
|
||||
public function get_results() {
|
||||
$query = urlencode($this->query);
|
||||
$results = array();
|
||||
for ($i=0; count($this->chs)>$i; $i++)
|
||||
{
|
||||
$response = curl_multi_getcontent($this->chs[$i]);
|
||||
|
||||
switch ($i)
|
||||
{
|
||||
case 0:
|
||||
$results = array_merge($results, get_thepiratebay_results($response));
|
||||
break;
|
||||
case 1:
|
||||
$results = array_merge($results, get_rutor_results($response));
|
||||
break;
|
||||
case 2:
|
||||
$results = array_merge($results, get_nyaa_results($response));
|
||||
break;
|
||||
case 3:
|
||||
$results = array_merge($results, get_yts_results($response));
|
||||
break;
|
||||
case 4:
|
||||
//$results = array_merge($results, get_torrentgalaxy_results($response));
|
||||
break;
|
||||
case 5:
|
||||
//$results = array_merge($results, get_1337x_results($response));
|
||||
break;
|
||||
case 6:
|
||||
$results = array_merge($results, get_sukebei_results($response));
|
||||
break;
|
||||
foreach ($this->requests as $request) {
|
||||
error_log($request->get_request_url());
|
||||
error_log( curl_getinfo($request->ch)['http_code'] );
|
||||
if ($request->successful()) {
|
||||
$results = array_merge($results, $request->get_results());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -78,10 +42,12 @@
|
|||
public static function print_results($results) {
|
||||
echo "<div class=\"text-result-container\">";
|
||||
|
||||
if (!empty($results))
|
||||
{
|
||||
foreach($results as $result)
|
||||
{
|
||||
if (empty($results)) {
|
||||
echo "<p>There are no results. Please try different keywords!</p>";
|
||||
return;
|
||||
}
|
||||
|
||||
foreach($results as $result) {
|
||||
$source = $result["source"];
|
||||
$name = $result["name"];
|
||||
$magnet = $result["magnet"];
|
||||
|
@ -99,9 +65,6 @@
|
|||
echo "$size</span>";
|
||||
echo "</div>";
|
||||
}
|
||||
}
|
||||
else
|
||||
echo "<p>There are no results. Please try different keywords!</p>";
|
||||
|
||||
echo "</div>";
|
||||
}
|
||||
|
|
|
@ -1,19 +1,33 @@
|
|||
<?php
|
||||
$nyaa_url = "https://nyaa.si/?q=$query";
|
||||
class NyaaRequest extends EngineRequest {
|
||||
public $SOURCE = "nyaa.si";
|
||||
|
||||
function get_nyaa_results($response)
|
||||
{
|
||||
global $config;
|
||||
public function get_request_url() {
|
||||
return "https://$this->SOURCE/?q=" . urlencode($this->query);
|
||||
}
|
||||
|
||||
public function get_results() {
|
||||
$response = curl_multi_getcontent($this->ch);
|
||||
$xpath = get_xpath($response);
|
||||
$results = array();
|
||||
|
||||
foreach($xpath->query("//tbody/tr") as $result)
|
||||
{
|
||||
$name = $xpath->evaluate(".//td[@colspan='2']//a[not(contains(@class, 'comments'))]/@title", $result)[0]->textContent;
|
||||
$name_node = $xpath->evaluate(".//td[@colspan='2']//a[not(contains(@class, 'comments'))]/@title", $result);
|
||||
if ($name_node->length > 0) {
|
||||
$name = $name_node[0]->textContent;
|
||||
} else {
|
||||
$name = "";
|
||||
}
|
||||
$centered = $xpath->evaluate(".//td[@class='text-center']", $result);
|
||||
$magnet = $xpath->evaluate(".//a[2]/@href", $centered[0])[0]->textContent;
|
||||
$magnet_node = $xpath->evaluate(".//a[2]/@href", $centered[0]);
|
||||
if ($magnet_node->length > 0) {
|
||||
$magnet = $magnet_node[0]->textContent;
|
||||
$magnet_without_tracker = explode("&tr=", $magnet)[0];
|
||||
$magnet = $magnet_without_tracker . $config->bittorent_trackers;
|
||||
$magnet = $magnet_without_tracker . $this->config->bittorent_trackers;
|
||||
} else {
|
||||
$magnet = "";
|
||||
}
|
||||
$size = $centered[1]->textContent;
|
||||
$seeders = $centered[3]->textContent;
|
||||
$leechers = $centered[4]->textContent;
|
||||
|
@ -25,11 +39,12 @@
|
|||
"leechers" => (int) $leechers,
|
||||
"magnet" => htmlspecialchars($magnet),
|
||||
"size" => htmlspecialchars($size),
|
||||
"source" => "nyaa.si"
|
||||
"source" => $this->SOURCE
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
return $results;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
<?php
|
||||
$rutor_url = "http://rutor.info/search/$query";
|
||||
class RutorRequest extends EngineRequest {
|
||||
public function get_request_url() {
|
||||
return "http://rutor.info/search/" . urlencode($this->query);
|
||||
}
|
||||
|
||||
function get_rutor_results($response)
|
||||
{
|
||||
global $config;
|
||||
public function get_results() {
|
||||
$response = curl_multi_getcontent($this->ch);
|
||||
$xpath = get_xpath($response);
|
||||
$results = array();
|
||||
|
||||
|
@ -13,7 +15,7 @@
|
|||
$name = $xpath->evaluate(".//td/a", $result)[2]->textContent;
|
||||
$magnet = $xpath->evaluate(".//td/a/@href", $result)[1]->textContent;
|
||||
$magnet_without_tracker = explode("&tr=", $magnet)[0];
|
||||
$magnet = $magnet_without_tracker . $config->bittorent_trackers;
|
||||
$magnet = $magnet_without_tracker . $this->config->bittorent_trackers;
|
||||
$td = $xpath->evaluate(".//td", $result);
|
||||
$size = $td[count($td) == 5 ? 3 : 2]->textContent;
|
||||
$seeders = $xpath->evaluate(".//span", $result)[0]->textContent;
|
||||
|
@ -33,4 +35,5 @@
|
|||
|
||||
return $results;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,44 +1,6 @@
|
|||
<?php
|
||||
$sukebei_url = "https://sukebei.nyaa.si/?q=$query";
|
||||
|
||||
function get_sukebei_results($response)
|
||||
{
|
||||
global $config;
|
||||
$xpath = get_xpath($response);
|
||||
$results = array();
|
||||
|
||||
foreach($xpath->query("//tbody/tr") as $result)
|
||||
{
|
||||
$name_node = $xpath->evaluate(".//td[@colspan='2']//a[not(contains(@class, 'comments'))]/@title", $result);
|
||||
if ($name_node->length > 0) {
|
||||
$name = $name_node[0]->textContent;
|
||||
} else {
|
||||
$name = "";
|
||||
}
|
||||
$centered = $xpath->evaluate(".//td[@class='text-center']", $result);
|
||||
$magnet_node = $xpath->evaluate(".//a[2]/@href", $centered[0]);
|
||||
if ($magnet_node->length > 0) {
|
||||
$magnet = $magnet_node[0]->textContent;
|
||||
$magnet_without_tracker = explode("&tr=", $magnet)[0];
|
||||
$magnet = $magnet_without_tracker . $config->bittorent_trackers;
|
||||
} else {
|
||||
$magnet = "";
|
||||
}
|
||||
$size = $centered[1]->textContent;
|
||||
$seeders = $centered[3]->textContent;
|
||||
$leechers = $centered[4]->textContent;
|
||||
|
||||
array_push($results,
|
||||
array (
|
||||
"name" => htmlspecialchars($name),
|
||||
"seeders" => (int) $seeders,
|
||||
"leechers" => (int) $leechers,
|
||||
"magnet" => htmlspecialchars($magnet),
|
||||
"size" => htmlspecialchars($size),
|
||||
"source" => "sukebei.nyaa.si"
|
||||
)
|
||||
);
|
||||
}
|
||||
return $results;
|
||||
include "engines/bittorrent/nyaa.php";
|
||||
class SukebeiRequest extends NyaaRequest {
|
||||
public $SOURCE = "sukebei.nyaa.si";
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
<?php
|
||||
class PirateBayRequest extends EngineRequest {
|
||||
public function get_request_url() {
|
||||
return "https://apibay.org/q.php?q=" . urlencode($this->query);
|
||||
}
|
||||
|
||||
$thepiratebay_url = "https://apibay.org/q.php?q=$query";
|
||||
|
||||
function get_thepiratebay_results($response)
|
||||
{
|
||||
global $config;
|
||||
public function get_results() {
|
||||
$response = curl_multi_getcontent($this->ch);
|
||||
$results = array();
|
||||
$json_response = json_decode($response, true);
|
||||
|
||||
|
@ -41,4 +42,5 @@
|
|||
return $results;
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
<?php
|
||||
$torrentgalaxy_url = "https://torrentgalaxy.to/torrents.php?search=$query#results";
|
||||
class TorrentGalaxyRequest extends EngineRequest {
|
||||
public function get_request_url() {
|
||||
$query = urlencode($this->query);
|
||||
return "https://torrentgalaxy.to/torrents.php?search=$query#results";
|
||||
}
|
||||
|
||||
function get_torrentgalaxy_results($response)
|
||||
{
|
||||
global $config;
|
||||
public function get_results() {
|
||||
$response = curl_multi_getcontent($this->ch);
|
||||
$xpath = get_xpath($response);
|
||||
$results = array();
|
||||
|
||||
|
@ -12,7 +15,7 @@
|
|||
$name = $xpath->evaluate(".//div[contains(@class, 'clickable-row')]", $result)[0]->textContent;
|
||||
$magnet = $xpath->evaluate(".//div[@class='tgxtablecell collapsehide rounded txlight']/a/@href", $result)[1]->textContent;
|
||||
$magnet_without_tracker = explode("&tr=", $magnet)[0];
|
||||
$magnet = $magnet_without_tracker . $config->bittorent_trackers;
|
||||
$magnet = $magnet_without_tracker . $this->config->bittorent_trackers;
|
||||
$size = $xpath->evaluate(".//div[@class='tgxtablecell collapsehide rounded txlight']/span", $result)[0]->textContent;
|
||||
$seeders = $xpath->evaluate(".//div[@class='tgxtablecell collapsehide rounded txlight']/span/font", $result)[1]->textContent;
|
||||
$leechers = $xpath->evaluate(".//div[@class='tgxtablecell collapsehide rounded txlight']/span/font", $result)[2]->textContent;
|
||||
|
@ -31,4 +34,5 @@
|
|||
|
||||
return $results;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
<?php
|
||||
$yts_url = "https://yts.mx/api/v2/list_movies.json?query_term=$query";
|
||||
class YTSRequest extends EngineRequest {
|
||||
public function get_request_url() {
|
||||
return "https://yts.mx/api/v2/list_movies.json?query_term=" . urlencode($this->query);
|
||||
}
|
||||
|
||||
function get_yts_results($response)
|
||||
{
|
||||
public function get_results() {
|
||||
$response = curl_multi_getcontent($this->ch);
|
||||
global $config;
|
||||
$results = array();
|
||||
$json_response = json_decode($response, true);
|
||||
|
@ -34,12 +37,11 @@
|
|||
"source" => "yts.mx"
|
||||
)
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $results;
|
||||
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
@ -17,6 +17,10 @@
|
|||
return "";
|
||||
}
|
||||
|
||||
public function successful() {
|
||||
return curl_getinfo($this->ch)['http_code'] == '200';
|
||||
}
|
||||
|
||||
abstract function get_results();
|
||||
static public function print_results($results){}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue