image.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. class QwantImageSearch extends EngineRequest {
  3. public function get_request_url() {
  4. $offset = $this->page * 5; // load 50 images per page
  5. $query = urlencode($this->query);
  6. return "https://api.qwant.com/v3/search/images?q=$query&t=images&count=50&locale=en_us&offset=$offset&device=desktop&tgp=3&safesearch=1";
  7. }
  8. public function parse_results($response) {
  9. $json = json_decode($response, true);
  10. $results = array();
  11. if ($json["status"] != "success")
  12. return $results; // no results
  13. $imgs = $json["data"]["result"]["items"];
  14. $imgCount = $json["data"]["result"]["total"];
  15. for ($i = 0; $i < $imgCount; $i++)
  16. {
  17. array_push($results,
  18. array (
  19. "thumbnail" => htmlspecialchars($imgs[$i]["thumbnail"]),
  20. "alt" => htmlspecialchars($imgs[$i]["title"]),
  21. "url" => htmlspecialchars($imgs[$i]["url"])
  22. )
  23. );
  24. }
  25. return $results;
  26. }
  27. public static function print_results($results, $opts) {
  28. echo "<div class=\"image-result-container\">";
  29. foreach($results as $result)
  30. {
  31. if (!$result
  32. || !array_key_exists("url", $result)
  33. || !array_key_exists("alt", $result))
  34. continue;
  35. $thumbnail = urlencode($result["thumbnail"]);
  36. $alt = $result["alt"];
  37. $url = $result["url"];
  38. $url = check_for_privacy_frontend($url, $opts);
  39. echo "<a title=\"$alt\" href=\"$url\" rel=\"noreferer noopener\" target=\"_blank\">";
  40. echo "<img src=\"image_proxy.php?url=$thumbnail\">";
  41. echo "</a>";
  42. }
  43. echo "</div>";
  44. }
  45. }
  46. ?>