mirror of
https://github.com/vichan-devel/vichan.git
synced 2024-11-25 07:50:23 +01:00
Merge https://github.com/savetheinternet/Tinyboard-Tools into vichan-devel-4.5
Conflicts: README.md js/auto-reload.js js/fix-report-delete-submit.js js/forced-anon.js js/local-time.js js/post-hover.js js/quick-post-controls.js js/quick-reply.js js/show-backlinks.js js/smartphone-spoiler.js migration/kusabax.php stylesheets/dark.css stylesheets/futaba+vichan.css stylesheets/miku.css stylesheets/testorange.css stylesheets/wasabi.css tools/benchmark.php tools/i18n_extract.php tools/inc/cli.php tools/rebuild.php
This commit is contained in:
commit
00b42a614a
@ -73,6 +73,11 @@ find support from a variety of sources:
|
||||
[irc.datnode.net #tinyboard](irc://irc.datnode.net/tinyboard).
|
||||
* You may find help at [tinyboard.org](http://tinyboard.org/#help).
|
||||
|
||||
Tinyboard-Tools:
|
||||
-----------------
|
||||
## Directories
|
||||
* ```tools/``` -- Command-line management scripts for Tinyboard. These should not be publicly executable.
|
||||
|
||||
License
|
||||
--------
|
||||
See [LICENSE.md](http://github.com/savetheinternet/Tinyboard/blob/master/LICENSE.md).
|
||||
|
4
js/jquery.min.js
vendored
4
js/jquery.min.js
vendored
File diff suppressed because one or more lines are too long
9
tools/benchmark.php
Normal file → Executable file
9
tools/benchmark.php
Normal file → Executable file
@ -47,6 +47,11 @@ function benchmark($method) {
|
||||
}
|
||||
|
||||
benchmark('gd');
|
||||
benchmark('imagick');
|
||||
if (extension_loaded('imagick')) {
|
||||
benchmark('imagick');
|
||||
} else {
|
||||
echo "Imagick extension not loaded... skipping.\n";
|
||||
}
|
||||
benchmark('convert');
|
||||
|
||||
benchmark('gm');
|
||||
becnhmark('convert+gifsicle');
|
||||
|
60
tools/delete-stray-images.php
Executable file
60
tools/delete-stray-images.php
Executable file
@ -0,0 +1,60 @@
|
||||
#!/usr/bin/php
|
||||
<?php
|
||||
/*
|
||||
* delete-stray-images.php - there was a period when undoImage() was not working at all. This meant that
|
||||
* if an error occured while uploading an image, the uploaded images might not have been deleted.
|
||||
*
|
||||
* This script iterates through every board and deletes any stray files in src/ or thumb/ that don't
|
||||
* exist in the database.
|
||||
*
|
||||
*/
|
||||
|
||||
require dirname(__FILE__) . '/inc/cli.php';
|
||||
|
||||
$boards = listBoards();
|
||||
|
||||
foreach ($boards as $board) {
|
||||
echo "/{$board['uri']}/... ";
|
||||
|
||||
openBoard($board['uri']);
|
||||
|
||||
$query = query(sprintf("SELECT `file`, `thumb` FROM ``posts_%s`` WHERE `file` IS NOT NULL", $board['uri']));
|
||||
$valid_src = array();
|
||||
$valid_thumb = array();
|
||||
|
||||
while ($post = $query->fetch(PDO::FETCH_ASSOC)) {
|
||||
$valid_src[] = $post['file'];
|
||||
$valid_thumb[] = $post['thumb'];
|
||||
}
|
||||
|
||||
$files_src = array_map('basename', glob($board['dir'] . $config['dir']['img'] . '*'));
|
||||
$files_thumb = array_map('basename', glob($board['dir'] . $config['dir']['thumb'] . '*'));
|
||||
|
||||
$stray_src = array_diff($files_src, $valid_src);
|
||||
$stray_thumb = array_diff($files_thumb, $valid_thumb);
|
||||
|
||||
$stats = array(
|
||||
'deleted' => 0,
|
||||
'size' => 0
|
||||
);
|
||||
|
||||
foreach ($stray_src as $src) {
|
||||
$stats['deleted']++;
|
||||
$stats['size'] = filesize($board['dir'] . $config['dir']['img'] . $src);
|
||||
if (!file_unlink($board['dir'] . $config['dir']['img'] . $src)) {
|
||||
$er = error_get_last();
|
||||
die("error: " . $er['message'] . "\n");
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($stray_thumb as $thumb) {
|
||||
$stats['deleted']++;
|
||||
$stats['size'] = filesize($board['dir'] . $config['dir']['thumb'] . $thumb);
|
||||
if (!file_unlink($board['dir'] . $config['dir']['thumb'] . $thumb)) {
|
||||
$er = error_get_last();
|
||||
die("error: " . $er['message'] . "\n");
|
||||
}
|
||||
}
|
||||
|
||||
echo sprintf("deleted %s files (%s)\n", $stats['deleted'], format_bytes($stats['size']));
|
||||
}
|
@ -33,7 +33,7 @@ if(!getenv('TINYBOARD_PATH')) {
|
||||
putenv('TINYBOARD_PATH=' . getcwd());
|
||||
|
||||
require 'inc/functions.php';
|
||||
require 'inc/mod.php';
|
||||
require 'inc/mod/auth.php';
|
||||
|
||||
$mod = Array(
|
||||
'id' => -1,
|
||||
|
@ -64,6 +64,7 @@ foreach($boards as &$board) {
|
||||
if(!$options['quiet'])
|
||||
echo "Opening board /{$board['uri']}/...\n";
|
||||
openBoard($board['uri']);
|
||||
$config['try_smarter'] = false;
|
||||
|
||||
if($config['file_script'] != $main_js) {
|
||||
// different javascript file
|
||||
@ -81,7 +82,7 @@ foreach($boards as &$board) {
|
||||
continue; // do no more
|
||||
|
||||
if($options['full']) {
|
||||
$query = query(sprintf("SELECT `id` FROM `posts_%s`", $board['uri'])) or error(db_error());
|
||||
$query = query(sprintf("SELECT `id` FROM ``posts_%s``", $board['uri'])) or error(db_error());
|
||||
while($post = $query->fetch()) {
|
||||
if(!$options['quiet'])
|
||||
echo "Rebuilding #{$post['id']}...\n";
|
||||
@ -89,7 +90,7 @@ foreach($boards as &$board) {
|
||||
}
|
||||
}
|
||||
|
||||
$query = query(sprintf("SELECT `id` FROM `posts_%s` WHERE `thread` IS NULL", $board['uri'])) or error(db_error());
|
||||
$query = query(sprintf("SELECT `id` FROM ``posts_%s`` WHERE `thread` IS NULL", $board['uri'])) or error(db_error());
|
||||
while($post = $query->fetch()) {
|
||||
if(!$options['quiet'])
|
||||
echo "Rebuilding #{$post['id']}...\n";
|
||||
|
Loading…
Reference in New Issue
Block a user