Translated to english; added “resurrect” action
This commit is contained in:
parent
632202b69c
commit
63b9271299
1 changed files with 46 additions and 34 deletions
|
@ -24,27 +24,30 @@ $opts=array(
|
|||
// Warning reminder: don't "clean" InstChecks table because its data is necessary to determine if an instance is dead
|
||||
'clean'=>false,
|
||||
'clean_before_weeks'=>24,
|
||||
'optimize'=>false,
|
||||
'resurrect'=>false,
|
||||
'optimize'=>false
|
||||
);
|
||||
|
||||
$help='mustool.php
|
||||
DESCRIZIONE
|
||||
mustool.php fa tante cose sul database delle istanze di Mastodon Help.
|
||||
SINOSSI
|
||||
mustool.php [opzioni] <azione[ azione...]>
|
||||
AZIONI
|
||||
DESCRIPTION
|
||||
mustool.php can do lots of things on Mastodon Help’s database.
|
||||
SINOPSIS
|
||||
mustool.php [options] <action[ action][ action][ ...]>
|
||||
Actions
|
||||
shuffle
|
||||
Randomizza la lista delle istanze (i valori della colonna RPos).
|
||||
Randomizes instances list (values in «RPos» column).
|
||||
updstats
|
||||
Aggiorna le statistiche sul sito.
|
||||
Updates site’s statistics.
|
||||
clean
|
||||
Cancella i record più vecchi di '.$opts['clean_before_weeks'].' settimane
|
||||
dalla tabella Notifications.
|
||||
Deletes records older than '.$opts['clean_before_weeks'].' weeks from
|
||||
«Notifications» table.
|
||||
resurrect
|
||||
Sets «Dead=0» on all «Instances» records.
|
||||
optimize
|
||||
Ottimizza le tabelle del database.
|
||||
OPZIONI
|
||||
Optimizes all the tables in the database.
|
||||
OPTIONS
|
||||
-h, --help
|
||||
Mostra questo aiuto ed esce.
|
||||
Shows this help text and exits.
|
||||
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details see the source.
|
||||
This is free software, and you are welcome to redistribute it under
|
||||
|
@ -60,7 +63,7 @@ for ($i=1; $i<$argc; $i++) {
|
|||
mexit($help,0);
|
||||
break;
|
||||
default:
|
||||
mexit('L’opzione «'.$argv[$i].'» è sconosciuta (usa «-h» per vedere la guida).'.N,1);
|
||||
mexit('Option «'.$argv[$i].'» is unknown (use «-h» to read help).'.N,1);
|
||||
break;
|
||||
}
|
||||
} elseif ($argv[$i]=='shuffle') {
|
||||
|
@ -72,15 +75,18 @@ for ($i=1; $i<$argc; $i++) {
|
|||
} elseif ($argv[$i]=='clean') {
|
||||
$dosome=true;
|
||||
$opts['clean']=true;
|
||||
} elseif ($argv[$i]=='resurrect') {
|
||||
$dosome=true;
|
||||
$opts['resurrect']=true;
|
||||
} elseif ($argv[$i]=='optimize') {
|
||||
$dosome=true;
|
||||
$opts['optimize']=true;
|
||||
} else {
|
||||
mexit('«'.$argv[$i].'» non è un’azione conosciuta (usa «-h» per vedere la guida).'.N,1);
|
||||
mexit('«'.$argv[$i].'» is an unknown action (use «-h» to read help).'.N,1);
|
||||
}
|
||||
}
|
||||
|
||||
if (!$dosome) mexit('Nessuna azione specificata (usa «-h» per vedere la guida).'.N,1);
|
||||
if (!$dosome) mexit('No actions was specified (use «-h» to read help).'.N,1);
|
||||
|
||||
use function mysqli_real_escape_string as myesc;
|
||||
|
||||
|
@ -94,20 +100,20 @@ function mexit($msg,$code) {
|
|||
|
||||
$inifp=__DIR__.'/../conf/mustard.ini';
|
||||
$iniarr=@parse_ini_file($inifp)
|
||||
or mexit('Impossibile aprire il file di configurazione «'.$inifp.'»'.N,1);
|
||||
or mexit('Could not open configuration file «'.$inifp.'»'.N,1);
|
||||
$link=@mysqli_connect($iniarr['db_host'],$iniarr['db_admin_name'],$iniarr['db_admin_password'],$iniarr['db_name'],$iniarr['db_port'],$iniarr['db_socket'])
|
||||
or mexit('Impossibile connettersi al server MySQL: '.mysqli_connect_error().N,1);
|
||||
or mexit('Could not connect to MySQL server: '.mysqli_connect_error().N,1);
|
||||
mysqli_set_charset($link,'utf8mb4')
|
||||
or mexit(__LINE__.': '.mysqli_error($link).N,1);
|
||||
or mexit('Could not set MySQL connection charset to «utf8mb4»: '.mysqli_error($link).N,1);
|
||||
|
||||
/*if ($opts['setold']) {
|
||||
echo('Setto New=0 per le istanze non più nuove ... ');
|
||||
echo('Setting «New=0» for instances which are no longer new ... ');
|
||||
mysqli_query($link,'UPDATE Instances SET New=0 WHERE '.time().'-FirstSeen > '.$opts['setold_new_period']) or mexit(__LINE__.': '.mysqli_error($link).N,2);
|
||||
echo('fatto! Righe coinvolte: '.mysqli_affected_rows($link).N);
|
||||
echo('done! Affected rows: '.mysqli_affected_rows($link).'.'.N);
|
||||
}*/
|
||||
|
||||
if ($opts['shuffle']) {
|
||||
echo('Randomizzo i valori della colonna RPos ... ');
|
||||
echo('Randomizing values in «RPos» column ... ');
|
||||
$res=mysqli_query($link,'SELECT ID FROM Instances') or mexit(__LINE__.': '.mysqli_error($link).N,2);
|
||||
$i=0;
|
||||
while ($row=mysqli_fetch_assoc($res)) {
|
||||
|
@ -117,15 +123,15 @@ if ($opts['shuffle']) {
|
|||
shuffle($buf);
|
||||
foreach ($buf as $key=>$val)
|
||||
mysqli_query($link,'UPDATE Instances SET RPos='.$val.' WHERE ID='.$key) or mexit(__LINE__.': '.mysqli_error($link).N,2);
|
||||
echo('fatto!'.N);
|
||||
echo('done! Affected rows: '.count($buf).'.'.N);
|
||||
}
|
||||
|
||||
if ($opts['updstats']) {
|
||||
$day=24*60*60;
|
||||
$now=time();
|
||||
$tdstart=gmmktime(0,0,0,gmdate('n',$now),gmdate('j',$now),gmdate('Y',$now));
|
||||
//echo('Oggi è cominciato a '.$tdstart.' ('.gmdate('d M Y H:i:s',$tdstart).').'.N);
|
||||
// questo qui sotto, se abilitato con "0==0", popola DISTRUTTIVAMENTE per test la tabella ZHits
|
||||
//echo('Today started at '.$tdstart.' ('.gmdate('d M Y H:i:s',$tdstart).').'.N);
|
||||
// this below, if enabled with "0==0", populates DESTRUCTIVELY table ZHits for testing purposes
|
||||
if (1==0) {
|
||||
mysqli_query($link,'DELETE FROM ZHits WHERE TS < '.$tdstart);
|
||||
mysqli_query($link,'DELETE FROM ZStats');
|
||||
|
@ -145,9 +151,9 @@ if ($opts['updstats']) {
|
|||
if (mysqli_num_rows($res)>0) {
|
||||
$row=mysqli_fetch_assoc($res);
|
||||
$dstart=gmmktime(0,0,0,gmdate('n',$row['TS']),gmdate('j',$row['TS']),gmdate('Y',$row['TS']));
|
||||
echo('Aggiorno le statistiche ... ');
|
||||
echo('Updating statistics ... ');
|
||||
} else {
|
||||
echo('Le statistiche sono già aggiornate :-)'.N);
|
||||
echo('Statistics are already up to date :-)'.N);
|
||||
mysqli_close($link);
|
||||
exit(0);
|
||||
}
|
||||
|
@ -155,9 +161,10 @@ if ($opts['updstats']) {
|
|||
while ($dstart<$tdstart) {
|
||||
//echo('-------- '.gmdate('d M Y H:i:s',$dstart).' ---------'.N);
|
||||
$inserts++;
|
||||
// questo qui sotto dev'essere sincronizzato con le lingue supportate e le url che serviamo (vedi index.php)
|
||||
$hits=0;
|
||||
// this line below must be synced with $supplangs in ../site/index.php
|
||||
$hitslang=array('ca'=>0, 'en'=>0, 'es'=>0, 'fr'=>0, 'gl'=>0, 'it'=>0, 'uk'=>0);
|
||||
// this line below must be synced with the urls we consider, see ../site/index.php
|
||||
$hitspage=array('home'=>0, 'instances'=>0, 'about'=>0, 'stats'=>0, 'contribute'=>0, '404'=>0);
|
||||
$visits=0;
|
||||
$buf=array();
|
||||
|
@ -185,19 +192,24 @@ if ($opts['updstats']) {
|
|||
$dstart+=$day;
|
||||
}
|
||||
mysqli_query($link,'DELETE FROM ZHits WHERE TS < '.$tdstart) or mexit(__LINE__.': '.mysqli_error($link).N,2);
|
||||
echo('fatto! (righe inserite: '.$inserts.')'.N);
|
||||
echo('done! Affected rows: '.$inserts.')'.N);
|
||||
}
|
||||
|
||||
if ($opts['clean']) {
|
||||
$affrows=0;
|
||||
$ago=time()-($opts['clean_before_weeks']*7*24*60*60);
|
||||
echo('Cancello i record più vecchi di '.$opts['clean_before_weeks'].' settimane dalla tabella Notifications...'.N);
|
||||
echo('Cleaning records older than '.$opts['clean_before_weeks'].' weeks from «Notifications» table...'.N);
|
||||
$res=mysqli_query($link,'DELETE FROM Notifications WHERE Microtime < '.$ago) or mexit(__LINE__.': '.mysqli_error($link).N,2);
|
||||
echo('Fatto! Righe cancellate: '.mysqli_affected_rows($link).'.'.N);
|
||||
echo('Done! Affected rows:: '.mysqli_affected_rows($link).'.'.N);
|
||||
}
|
||||
|
||||
if ($opts['resurrect']) {
|
||||
echo('Setting «Dead=0» for records with «Dead!=0»...'.N);
|
||||
$res=mysqli_query($link,'UPDATE Instances SET Dead=0 WHERE Dead!=0') or mexit(__LINE__.': '.mysqli_error($link).N,2);
|
||||
echo('Done! Affected rows:: '.mysqli_affected_rows($link).'.'.N);
|
||||
}
|
||||
|
||||
if ($opts['optimize']) {
|
||||
echo('Ottimizzo le tabelle del database...'.N);
|
||||
echo('Optimizing all the tables in the database...'.N);
|
||||
$res=mysqli_query($link,'SHOW TABLES') or mexit(__LINE__.': '.mysqli_error($link).N,2);
|
||||
while ($row=mysqli_fetch_row($res)) {
|
||||
$rres=mysqli_query($link,'OPTIMIZE TABLE '.$row[0]) or mexit(__LINE__.': '.mysqli_error($link).N,2);
|
||||
|
@ -205,7 +217,7 @@ if ($opts['optimize']) {
|
|||
if ($rrow['Msg_type']=='error' || $rrow['Msg_type']=='warning')
|
||||
fwrite(STDERR,kimplode($rrow).N);
|
||||
}
|
||||
echo('Fatto!'.N);
|
||||
echo('Done!'.N);
|
||||
}
|
||||
|
||||
mysqli_close($link);
|
||||
|
|
Loading…
Reference in a new issue