requests = array( new LeetxRequest($opts, $mh), // 1337x new LimeRequest($opts, $mh), // Limetorrents new PirateBayRequest($opts, $mh), new YTSRequest($opts, $mh), new NyaaRequest($opts, $mh), new EZTVRequest($opts, $mh) ); } public function parse_results($response) { $results = $results_temp = array(); foreach($this->requests as $request) { if($request->request_successful()) { $engine_result = $request->get_results(); if(!empty($engine_result)) { // No merging of results // $results_temp = array_merge($results_temp, $engine_result); // Merge duplicates and apply relevance scoring foreach($engine_result as $result) { if(count($results_temp) > 1 && !is_null($result['hash'])) { $result_urls = array_column($results_temp, "hash", "id"); $found_key = array_search($result['hash'], $result_urls); } else { $found_key = false; } if($found_key !== false) { // Duplicate result from another source // If seeders and/or leechers mismatch, assume they're different users if($results_temp[$found_key]['seeders'] != $result['seeders']) $results_temp[$found_key]['combo_seeders'] += $result['seeders']; if($results_temp[$found_key]['leechers'] != $result['leechers']) $results_temp[$found_key]['combo_leechers'] += $result['leechers']; $results_temp[$found_key]['combo_source'][] = $result['source']; } else { // First find, rank and add to results $result['combo_seeders'] = $result['seeders']; $result['combo_leechers'] = $result['leechers']; $result['combo_source'][] = $result['source']; $results_temp[$result['id']] = $result; } unset($result, $result_urls, $found_key, $social_media_multiplier, $goosle_rank, $match_rank); } } } else { $request_result = curl_getinfo($request->ch); $http_code_info = ($request_result['http_code'] >= 200 && $request_result['http_code'] <= 600) ? " - What's this?" : ""; $results['error'][] = array( "message" => "Ohno! A search query ran into some trouble. Usually you can try again in a few seconds to get a result!
Engine: ".get_class($request)."
Error code: ".$request_result['http_code'].$http_code_info."
Request url: ".$request_result['url']."." ); } unset($request); } if(count($results_temp) > 0) { // Sort by highest seeders $seeders = array_column($results_temp, "combo_seeders"); array_multisort($seeders, SORT_DESC, $results_temp); // Cap results to 50 $results['search'] = array_slice($results_temp, 0, 50); // Count results per source $sources = array_count_values(array_column($results['search'], 'source')); if(count($sources) > 0) $results['sources'] = $sources; unset($sources); } else { // Add error if there are no search results $results['error'][] = array( "message" => "No results found. Please try with more specific or different keywords!" ); } unset($results_temp); return $results; } public static function print_results($results, $opts) { /* // Uncomment for debugging echo '
Settings: ';
print_r($opts);
echo '
'; echo '
Search results: ';
print_r($results);
echo '
'; */ if(array_key_exists("search", $results)) { echo "
    "; // Elapsed time $number_of_results = count($results['search']); echo "
  1. Fetched ".$number_of_results." results in ".$results['time']." seconds.
  2. "; // Format sources search_sources($results['sources']); // Search results foreach($results['search'] as $result) { // Extra data $meta = array(); 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 on: ".date('M d, Y', $result['date_added']); if(array_key_exists('url', $result)) $url = " - torrent page"; // Put result together echo "
  3. "; echo ""; echo "
    Seeds: ".$result['combo_seeders']." - Peers: ".$result['combo_leechers']." - Size: ".$result['size']."
    ".implode(" - ", $meta)."
    "; if($opts->show_search_source == "on") echo "
    Found on: ".replace_last_comma(implode(", ", $result['combo_source'])).$url."
    "; echo "
  4. "; unset($result, $meta); } echo "
"; echo "
Goosle does not index, offer or distribute torrent files.
"; } // No results found if(array_key_exists("error", $results)) { foreach($results['error'] as $error) { echo "
".$error['message']."
"; } } } } ?>