search.php 4.4 KB

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