search.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <?php require "static/header.html"; ?>
  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 id="logo" src="static/images/librex.png" alt="librex"></a>
  7. <input type="text" name="q"
  8. <?php
  9. $query = trim($_REQUEST["q"]);
  10. if (1 > strlen($query) || strlen($query) > 256)
  11. {
  12. header("Location: /");
  13. die();
  14. }
  15. echo "value=\"$query\"";
  16. ?>
  17. >
  18. <br>
  19. <?php
  20. $type = $_REQUEST["type"];
  21. echo "<input type=\"hidden\" name=\"type\" value=\"$type\"/>";
  22. ?>
  23. <button type="submit" style="display:none;"></button>
  24. <input type="hidden" name="p" value="0">
  25. <div class="sub-search-button-wrapper">
  26. <button name="type" value="0"><img src="static/images/text_result.png">Text</button>
  27. <button name="type" value="1"><img src="static/images/image_result.png">Images</button>
  28. <button name="type" value="2"><img src="static/images/video_result.png">Videos</button>
  29. <button name="type" value="3"><img src="static/images/torrent_result.png">Torrents</button>
  30. </div>
  31. <hr>
  32. </form>
  33. <?php
  34. require "config.php";
  35. function check_for_special_search($query)
  36. {
  37. $query_lower = strtolower($query);
  38. if (strpos($query_lower, "to"))
  39. {
  40. require "engines/special/currency.php";
  41. currency_results($query);
  42. }
  43. else if (strpos($query_lower, "mean"))
  44. {
  45. require "engines/special/definition.php";
  46. definition_results($query);
  47. }
  48. else if (3 > count(explode(" ", $query))) // long queries usually wont return a wiki result thats why this check exists
  49. {
  50. require "engines/special/wikipedia.php";
  51. wikipedia_results($query_lower);
  52. return;
  53. }
  54. }
  55. $page = isset($_REQUEST["p"]) ? (int) $_REQUEST["p"] : 0;
  56. $type = isset($_REQUEST["type"]) ? (int) $_REQUEST["type"] : 0;
  57. $query_encoded = urlencode($query);
  58. switch ($type)
  59. {
  60. case 0:
  61. require "engines/google/text.php";
  62. $results = get_text_results($query_encoded, $page);
  63. if ($page == 0)
  64. check_for_special_search($query);
  65. print_text_results($results);
  66. break;
  67. case 1:
  68. require "engines/google/image.php";
  69. $results = get_image_results($query_encoded);
  70. print_image_results($results);
  71. break;
  72. case 2:
  73. require "engines/google/video.php";
  74. $results = get_video_results($query_encoded, $page);
  75. print_video_results($results);
  76. break;
  77. case 3:
  78. if ($config_disable_bittorent_search)
  79. echo "<p class=\"text-result-container\">The host disabled this feature! :C</p>";
  80. else
  81. {
  82. require "engines/bittorrent/merge.php";
  83. $results = get_merged_torrent_results($query_encoded);
  84. print_merged_torrent_results($results);
  85. break;
  86. }
  87. break;
  88. default:
  89. require "engines/google/text.php";
  90. $results = get_text_results($query_encoded, $page);
  91. print_text_results($results);
  92. break;
  93. }
  94. if ($type == 0 || $type == 2 )
  95. {
  96. echo "<div class=\"next-page-button-wrapper\">";
  97. if ($page != 0)
  98. {
  99. print_next_page_button("&lt;&lt;", 0, $query, $type);
  100. print_next_page_button("&lt;", $page - 10, $query, $type);
  101. }
  102. for ($i=$page / 10; $page / 10 + 10 > $i; $i++)
  103. print_next_page_button($i + 1, $i * 10, $query, $type);
  104. print_next_page_button("&gt;", $page + 10, $query, $type);
  105. echo "</div>";
  106. }
  107. ?>
  108. <?php require "static/footer.html"; ?>