search.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php require "misc/header.php"; ?>
  2. <title> <?php echo $_REQUEST["q"]; ?> - LibreX</title>
  3. </head>
  4. <body>
  5. <form class="sub-search-container" method="post" enctype="multipart/form-data" autocomplete="off">
  6. <a href="./"><img class="logo" src="static/images/librex.png" alt="librex logo"></a>
  7. <input type="text" name="q"
  8. <?php
  9. $query = htmlspecialchars(trim($_REQUEST["q"]));
  10. $query_encoded = urlencode($query);
  11. if (1 > strlen($query) || strlen($query) > 256)
  12. {
  13. header("Location: ./");
  14. die();
  15. }
  16. echo "value=\"$query\"";
  17. ?>
  18. >
  19. <br>
  20. <?php
  21. $type = isset($_REQUEST["type"]) ? (int) $_REQUEST["type"] : 0;
  22. echo "<input type=\"hidden\" name=\"type\" value=\"$type\"/>";
  23. ?>
  24. <button type="submit" class="hide"></button>
  25. <input type="hidden" name="p" value="0">
  26. <div class="sub-search-button-wrapper">
  27. <button name="type" value="0"><img src="static/images/text_result.png" alt="text result" />General</button>
  28. <button name="type" value="1"><img src="static/images/image_result.png" alt="image result" />Images</button>
  29. <button name="type" value="2"><img src="static/images/video_result.png" alt="video result" />Videos</button>
  30. <button name="type" value="3"><img src="static/images/torrent_result.png" alt="torrent result" />Torrents</button>
  31. </div>
  32. <hr>
  33. </form>
  34. <?php
  35. $config = require "config.php";
  36. require "misc/tools.php";
  37. $page = isset($_REQUEST["p"]) ? (int) $_REQUEST["p"] : 0;
  38. $start_time = microtime(true);
  39. switch ($type)
  40. {
  41. case 0:
  42. if (substr($query, 0, 1) == "!")
  43. check_ddg_bang($query);
  44. require "engines/google/text.php";
  45. $results = get_text_results($query, $page);
  46. print_elapsed_time($start_time);
  47. print_text_results($results);
  48. break;
  49. case 1:
  50. require "engines/qwant/image.php";
  51. $results = get_image_results($query_encoded, $page);
  52. print_elapsed_time($start_time);
  53. print_image_results($results);
  54. break;
  55. case 2:
  56. require "engines/google/video.php";
  57. $results = get_video_results($query_encoded, $page);
  58. print_elapsed_time($start_time);
  59. print_video_results($results);
  60. break;
  61. case 3:
  62. if ($config->disable_bittorent_search)
  63. echo "<p class=\"text-result-container\">The host disabled this feature! :C</p>";
  64. else
  65. {
  66. require "engines/bittorrent/merge.php";
  67. $results = get_merged_torrent_results($query_encoded);
  68. print_elapsed_time($start_time);
  69. print_merged_torrent_results($results);
  70. break;
  71. }
  72. break;
  73. default:
  74. require "engines/google/text.php";
  75. $results = get_text_results($query_encoded, $page);
  76. print_text_results($results);
  77. print_elapsed_time($start_time);
  78. break;
  79. }
  80. if ($type != 3)
  81. {
  82. echo "<div class=\"next-page-button-wrapper\">";
  83. if ($page != 0)
  84. {
  85. print_next_page_button("&lt;&lt;", 0, $query, $type);
  86. print_next_page_button("&lt;", $page - 10, $query, $type);
  87. }
  88. for ($i=$page / 10; $page / 10 + 10 > $i; $i++)
  89. print_next_page_button($i + 1, $i * 10, $query, $type);
  90. print_next_page_button("&gt;", $page + 10, $query, $type);
  91. echo "</div>";
  92. }
  93. ?>
  94. <?php require "misc/footer.php"; ?>