Revert "search.php: use SearchQueries"

This reverts commit 5719960838.
This commit is contained in:
Zankaria 2025-05-24 00:43:28 +02:00
parent 202d3459a9
commit 336619a7b0

View file

@ -1,13 +1,14 @@
<?php
use Vichan\Data\SearchQueries;
require 'inc/bootstrap.php';
if (!$config['search']['enable']) {
die(_("Post search is disabled"));
}
$queries_per_minutes = $config['search']['queries_per_minutes'];
$queries_per_minutes_all = $config['search']['queries_per_minutes_all'];
$search_limit = $config['search']['search_limit'];
if (isset($config['search']['boards'])) {
$boards = $config['search']['boards'];
} else {
@ -22,18 +23,35 @@ if (isset($_GET['search']) && !empty($_GET['search']) && isset($_GET['board']) &
]);
$phrase = $_GET['search'];
$ip = $_SERVER['REMOTE_ADDR'];
$_body = '';
$ctx = Vichan\build_context($config);
$search_queries = $ctx->get(SearchQueries::class);
if ($search_queries->checkFlood($ip, $phrase)) {
$query = prepare("SELECT COUNT(*) FROM ``search_queries`` WHERE `ip` = :ip AND `time` > :time");
$query->bindValue(':ip', $_SERVER['REMOTE_ADDR']);
$query->bindValue(':time', time() - ($queries_per_minutes[1] * 60));
$query->execute() or error(db_error($query));
if ($query->fetchColumn() > $queries_per_minutes[0])
error(_('Wait a while before searching again, please.'));
}
$query = prepare("SELECT COUNT(*) FROM ``search_queries`` WHERE `time` > :time");
$query->bindValue(':time', time() - ($queries_per_minutes_all[1] * 60));
$query->execute() or error(db_error($query));
if ($query->fetchColumn() > $queries_per_minutes_all[0])
error(_('Wait a while before searching again, please.'));
$query = prepare("INSERT INTO ``search_queries`` VALUES (:ip, :time, :query)");
$query->bindValue(':ip', $_SERVER['REMOTE_ADDR']);
$query->bindValue(':time', time());
$query->bindValue(':query', $phrase);
$query->execute() or error(db_error($query));
_syslog(LOG_NOTICE, 'Searched /' . $_GET['board'] . '/ for "' . $phrase . '"');
// Cleanup search queries table
$query = prepare("DELETE FROM ``search_queries`` WHERE `time` <= :time");
$query->bindValue(':time', time() - ($queries_per_minutes_all[1] * 60));
$query->execute() or error(db_error($query));
openBoard($_GET['board']);
$filters = Array();
@ -115,8 +133,6 @@ if (isset($_GET['search']) && !empty($_GET['search']) && isset($_GET['board']) &
$like = str_replace('%', '%%', $like);
$search_limit = $config['search']['search_limit'];
$query = prepare(sprintf("SELECT * FROM ``posts_%s`` WHERE " . $like . " ORDER BY `time` DESC LIMIT :limit", $board['uri']));
$query->bindValue(':limit', $search_limit, PDO::PARAM_INT);
$query->execute() or error(db_error($query));