query = $opts->query; $this->opts = $opts; if($this->opts->type == 0) { require "engines/duckduckgo.php"; $this->engine_request = new DuckDuckGoRequest($opts, $mh); } if($this->opts->type == 1) { require "engines/google.php"; $this->engine_request = new GoogleRequest($opts, $mh); } // Special search $this->special_request = special_search_request($opts); } public function parse_results($response) { $results = array(); // Abort if no results from search engine if(!isset($this->engine_request)) return $results; // Add search results if there are any, otherwise add error if($this->engine_request->request_successful()) { $search_result = $this->engine_request->get_results(); if($search_result) { $results = $search_result; } unset($search_result); } else { $results['error'] = array( "message" => "Error code ".curl_getinfo($this->engine_request->ch)['http_code']." for ".curl_getinfo($this->engine_request->ch)['url'].".
Try again in a few seconds or engine_request->ch)['url']."\" target=\"_blank\">visit the search engine in a new tab." ); } // Check for Special result if($this->special_request) { $special_result = $this->special_request->get_results(); if($special_result) { $results['special'] = $special_result; } unset($special_result); } // Add error if there are no search results if(empty($results)) { $results['error'] = array( "message" => "No results found. Please try with less 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 "
    "; // Elapsed time $number_of_results = count($results['search']); echo "
  1. Fetched ".$number_of_results." results in ".$results['time']." seconds.
  2. "; // Did you mean/Search suggestion if(array_key_exists("did_you_mean", $results)) { $specific_result = ""; if(array_key_exists("search_specific", $results)) { // Add double quotes to Google search $search_specific = ($opts->type == 1) ? "\"".$results['search_specific']."\"" : $results['search_specific']; // Format query url $search_specific_url = "./results.php?q=" . urlencode($search_specific)."&t=".$opts->type."&a=".$opts->hash; // Specific search $specific_result = "
    Or instead search for ".$search_specific."."; unset($search_specific, $search_specific_url); } $didyoumean_url = "./results.php?q=" . urlencode($results['did_you_mean'])."&t=".$opts->type."&a=".$opts->hash; echo "
  3. Did you mean ".$results['did_you_mean']."?".$specific_result."
  4. "; unset($didyoumean_url, $specific_result); } // Special results if($opts->special['imdb_id_search'] == "on") { $found = false; foreach($results['search'] as $search_result) { if(!$found && preg_match_all("/(imdb.com|tt[0-9]+)/i", $search_result['url'], $imdb_result) && stristr($search_result['title'], "tv series") !== false) { $results['special'] = array( "title" => $search_result['title'], "text" => "Goosle found an IMDb ID for this TV Show in your results (".$imdb_result[0][1].") - hash."&t=9\">search for magnet links?
    An IMDb ID is detected when a TV Show is present in the results. The first match is highlighted here." ); $found = true; } } } if(array_key_exists("special", $results)) { echo "
  5. "; // Maybe shorten text if(strlen($results['special']['text']) > 1250) { $results['special']['text'] = substr($results['special']['text'], 0, strrpos(substr($results['special']['text'], 0, 1300), ". ")); $results['special']['text'] .= '. [...]'; } // Add image to text if(array_key_exists("image", $results['special'])) { $image_specs = getimagesize($results['special']['image']); $width = $image_specs[0] / 2; $height = $image_specs[1] / 2; $special_image = ""; $results['special']['text'] = $special_image.$results['special']['text']; unset($image_specs, $width, $height, $special_image); } echo "

    ".$results['special']['title']."

    "; echo "
    ".$results['special']['text']."
    "; if(array_key_exists("source", $results['special'])) { echo ""; } echo "
  6. "; } // Search results foreach($results['search'] as $result) { if(array_key_exists("did_you_mean", $result)) continue; // Put result together echo "
  7. "; unset($result); } echo "
"; } // No results found if(array_key_exists("error", $results)) { echo "
".$results['error']['message']."
"; } } } ?>