diff options
| author | czaks <marcin@6irc.net> | 2014-03-25 13:03:37 +0100 |
|---|---|---|
| committer | czaks <marcin@6irc.net> | 2014-03-25 13:03:37 +0100 |
| commit | f0b2240b5f1e67fb9ad4770a3d5b0f298cf4c1d4 (patch) | |
| tree | 3180570731df62be98bd4737c34b5b3ae9ca828e /tools/recount-bumps.php | |
| parent | 15810c9bedb5b7d18baec0f845bb3177f867471e (diff) | |
| parent | 44db8e76d8e21b38f9be4ad9e69f6af19c116fb0 (diff) | |
Merge branch 'master' of github.com:vichan-devel/Tinyboard into br-integration
Diffstat (limited to 'tools/recount-bumps.php')
| -rw-r--r-- | tools/recount-bumps.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tools/recount-bumps.php b/tools/recount-bumps.php new file mode 100644 index 00000000..5adc74d8 --- /dev/null +++ b/tools/recount-bumps.php @@ -0,0 +1,39 @@ +<?php +// A script to recount bumps to recover from a last-page-bump attack +// or to be run after the KusabaX Migration. + +require dirname(__FILE__) . '/inc/cli.php'; + +if(!is_writable($config['file_script'])) { + get_httpd_privileges(); +} + +if (!isset ($argv[1])) { + die("Usage: tools/recount-bumps.php board_uri\n"); +} +$board = $argv[1]; + +$q = query(sprintf("SELECT `id`, `bump`, `time` FROM ``posts_%s`` + WHERE `thread` IS NULL", $board)); +while ($val = $q->fetch()) { + $lc = prepare(sprintf('SELECT MAX(`time`) AS `aq` FROM ``posts_%s`` + WHERE ((`thread` = :thread and + `email` != "sage" ) OR `id` = :thread', $board)); + + $lc->bindValue(":thread", $val['id']); + $lc->execute(); + + $f = $lc->fetch(); + if ($val['bump'] != $f['aq']) { + $query = prepare(sprintf("UPDATE ``posts_%s`` SET `bump`=:bump + WHERE `id`=:id", $board)); + $query->bindValue(":bump", $f['aq']); + $query->bindValue(":id", $val['id']); + echo("Thread $val[id] - to be $val[bump] -> $f[aq]\n"); + } + else { + echo("Thread $val[id] ok\n"); + } +} + +echo("done\n"); |
