diff --git a/inc/config.php b/inc/config.php index 120f3865..15af9661 100644 --- a/inc/config.php +++ b/inc/config.php @@ -262,7 +262,8 @@ 'recaptcha_challenge_field', 'recaptcha_response_field', 'spoiler', - 'quick-reply' + 'quick-reply', + 'page' ); // Enable reCaptcha to make spam even harder. Rarely necessary. diff --git a/inc/functions.php b/inc/functions.php index b6862444..309546ef 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -841,11 +841,14 @@ function post(array $post) { } function bumpThread($id) { - global $board; + global $config, $board, $build_pages; if (event('bump', $id)) return true; + if ($config['try_smarter']) + $build_pages[] = thread_find_page($id); + $query = prepare(sprintf("UPDATE ``posts_%s`` SET `bump` = :time WHERE `id` = :id AND `thread` IS NULL", $board['uri'])); $query->bindValue(':time', time(), PDO::PARAM_INT); $query->bindValue(':id', $id, PDO::PARAM_INT); @@ -1274,7 +1277,8 @@ function buildIndex() { global $board, $config, $build_pages; $pages = getPages(); - $antibot = create_antibot($board['uri']); + if (!$config['try_smarter']) + $antibot = create_antibot($board['uri']); for ($page = 1; $page <= $config['max_pages']; $page++) { $filename = $board['dir'] . ($page == 1 ? $config['file_index'] : sprintf($config['file_page'], $page)); @@ -1285,8 +1289,11 @@ function buildIndex() { if (!$content) break; + if ($config['try_smarter']) { + $antibot = create_antibot($board['uri'], 0 - $page); + $content['current_page'] = $page; + } $antibot->reset(); - $content['pages'] = $pages; $content['pages'][$page-1]['selected'] = true; $content['btn'] = getPageButtons($content['pages']); diff --git a/post.php b/post.php index 103894db..65e85bcc 100644 --- a/post.php +++ b/post.php @@ -216,7 +216,7 @@ if (isset($_POST['delete'])) { } if (!$post['mod']) { - $post['antispam_hash'] = checkSpam(array($board['uri'], isset($post['thread']) && !($config['quick_reply'] && isset($_POST['quick-reply'])) ? $post['thread'] : null)); + $post['antispam_hash'] = checkSpam(array($board['uri'], isset($post['thread']) && !($config['quick_reply'] && isset($_POST['quick-reply'])) ? $post['thread'] : ($config['try_smarter'] && isset($_POST['page']) ? 0 - (int)$_POST['page'] : null))); if ($post['antispam_hash'] === true) error($config['error']['spam']); } @@ -594,12 +594,15 @@ if (isset($_POST['delete'])) { } } - buildThread($post['op'] ? $id : $post['thread']); - if (!$post['op'] && strtolower($post['email']) != 'sage' && !$thread['sage'] && ($config['reply_limit'] == 0 || $numposts['replies']+1 < $config['reply_limit'])) { bumpThread($post['thread']); } + buildThread($post['op'] ? $id : $post['thread']); + + if ($config['try_smarter'] && $post['op']) + $build_pages = range(1, $config['max_pages']); + if ($post['op']) clean(); diff --git a/templates/post_form.html b/templates/post_form.html index 31fe88c6..4d7a37b7 100644 --- a/templates/post_form.html +++ b/templates/post_form.html @@ -4,6 +4,9 @@ {{ antibot.html() }} {{ antibot.html() }} +{% if current_page %} + +{% endif %} {% if mod %}{% endif %} {% if not config.field_disable_name or (mod and post.mod|hasPermission(config.mod.bypass_field_disable, board.uri)) %}