opts = $opts; $this->url = 'torrent'; // Dummy value to satisfy EngineRequest::get_results() require "engines/torrent/1337x.php"; require "engines/torrent/nyaa.php"; require "engines/torrent/thepiratebay.php"; require "engines/torrent/yts.php"; require "engines/torrent/eztv.php"; $this->requests = array( new LeetxRequest($opts, $mh), // 1337x new NyaaRequest($opts, $mh), new PirateBayRequest($opts, $mh), new YTSRequest($opts, $mh), new EZTVRequest($opts, $mh) ); } public function parse_results($response) { $results = $results_temp = array(); foreach($this->requests as $request) { if($request->request_successful()) { $results_temp = array_merge($results_temp, $request->get_results()); } } if(count($results_temp) > 0) { // Ensure highest seeders are shown first $seeders = array_column($results_temp, "seeders"); array_multisort($seeders, SORT_DESC, $results_temp); // Cap results $results['search'] = array_slice($results_temp, 0, 50); // Count results per site $sources = array_count_values(array_column($results['search'], 'source')); if(count($sources) > 0) $results['sources'] = $sources; unset($sources); } unset($results_temp); // Add error if there are no search results if(empty($results)) { $results['error'] = array( "message" => "No results found. Please try with more specific or different keywords!" ); } return $results; } public static function print_results($results, $opts) { /* echo '
Results: ';
		print_r($results);
		echo '
'; */ if(array_key_exists("search", $results)) { echo "
    "; // Format sources $sources = ""; if(array_key_exists("sources", $results)) { $sources = array(); foreach($results['sources'] as $source => $amount) { $plural = ($amount > 1) ? "results" : "result"; $sources[] = $amount." ".$plural." from ".$source; } $sources = implode(', ', $sources); $last_comma = strrpos($sources, ', '); if($last_comma !== false) { $sources = substr_replace($sources, ' and ', $last_comma, 2); } $sources = "
    Including ".$sources.". Links with the most seeders are listed first."; } // Elapsed time $number_of_results = count($results['search']); echo "
  1. Fetched ".$number_of_results." results in ".$results['time']." seconds.".$sources."
  2. "; // Search results foreach($results['search'] as $result) { $meta = array(); // Optional data if(array_key_exists('quality', $result)) $meta[] = "Quality: ".$result['quality']; if(array_key_exists('year', $result)) $meta[] = "Year: ".$result['year']; if(array_key_exists('category', $result)) $meta[] = "Category: ".$result['category']; if(array_key_exists('runtime', $result)) $meta[] = "Runtime: ".date('H:i', mktime(0, $result['runtime'])); if(array_key_exists('date_added', $result)) $meta[] = "Added: ".date('M d, Y', $result['date_added']); if(array_key_exists('url', $result)) $meta[] = "Torrent page"; // Put result together echo "
  3. "; unset($result, $meta); } echo "
"; echo "
Showing up to 50 results, sorted by most seeders.
Goosle does not index, offer or distribute torrent files.
"; } // No results found if(array_key_exists("error", $results)) { echo "
".$results['error']['message']."
"; } } } ?>