Aggiunta la possibilità di passargli opzioni da riga di comando; sistemato un bacone; eliminata una funzione non utilizzata.
This commit is contained in:
parent
8d276bcd94
commit
0cdf966ec8
1 changed files with 65 additions and 24 deletions
|
@ -61,42 +61,83 @@ $opts=array(
|
|||
'log'=>false,
|
||||
'jsonfp'=>__DIR__.'/instances.json',
|
||||
'jsonwrite'=>false,
|
||||
'peersfp'=>__DIR__.'peers'
|
||||
'peersfp'=>__DIR__.'/peers'
|
||||
);
|
||||
|
||||
use function mysqli_real_escape_string as myesc;
|
||||
$help='crawler.php
|
||||
DESCRIZIONE
|
||||
Popola/aggiorna il database di mastostart con i dati che riesce
|
||||
a recuperare da una lista di istanze composta da quelle già presenti
|
||||
nel database più quelle di un file specificabile (tipicamente il file
|
||||
di output di peerscrawl.php).
|
||||
È possibile fermarne l’esecuzione per riprenderla in un secondo tempo:
|
||||
il programma genera, durante l’esecuzione, una lista delle istanze che
|
||||
deve controllare («instances.job») e un file in cui viene salvata l’ultima
|
||||
istanza controllata e altri dati; per riprendere l’esecuzione là dove
|
||||
era stata lasciata basta lanciare nuovamente il programma; per evitare
|
||||
che il programma riprenda da dove era arrivato durante l’esecuzione
|
||||
precedente basta cancellare i due file di cui sopra.
|
||||
SYNOPSIS
|
||||
peerscrawl.php [options]
|
||||
OPTIONS
|
||||
-p, --peersfp <file>
|
||||
Definisce il file da cui caricare la lista delle istanze di cui cercare
|
||||
di recuperare i dati. Nota: questa opzione è ininfluente se il programma
|
||||
viene lanciato per riprendere un’esecuzione precedente interrotta.
|
||||
DEFAULT: «'.$opts['peersfp'].'»
|
||||
-t, --timeout <secondi>
|
||||
Definisce il timeout in secondi di ogni tentativo di connessione.
|
||||
DEFAULT: «'.$opts['timeout'].'»
|
||||
-l, --log
|
||||
Attiva il logging dell’output nel file «crawler.php» nella stessa
|
||||
directory di crawler.php.
|
||||
-j, --jsonwrite
|
||||
Attiva la scrittura di un file «instances.json» nella stessa directory
|
||||
di crawler.php, contenente tutti i dati recuperati da tutte le istanze.
|
||||
|
||||
function tosec($str) {
|
||||
if (preg_match('/^([0-9]+)([smogSMA]?)/',$str,$buf)===1) {
|
||||
switch ($buf[2]) {
|
||||
case '':
|
||||
case 's':
|
||||
return($buf[1]);
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details see the source.
|
||||
This is free software, and you are welcome to redistribute it under
|
||||
certain conditions; see <http://www.gnu.org/licenses/> for details.'.N;
|
||||
|
||||
for ($i=1; $i<$argc; $i++) {
|
||||
if (substr($argv[$i],0,1)=='-') {
|
||||
switch($argv[$i]) {
|
||||
case '-p':
|
||||
case '--peersfp':
|
||||
if ($i+1>=$argc || !file_exists($argv[$i+1]) || !is_file($argv[$i+1]) || !is_readable($argv[$i+1]))
|
||||
mexit('L’opzione «'.$argv[$i].'» richiede come parametro un file esistente e leggibile (usa «-h» per vedere la guida).'.N,1);
|
||||
$i++;
|
||||
$opts['peersfp']=$argv[$i];
|
||||
break;
|
||||
case 'm':
|
||||
return($buf[1]*60);
|
||||
case '-t':
|
||||
case '--timeout':
|
||||
if ($i+1>=$argc || preg_match('/[0-9]+/',$argv[$i+1])!==1)
|
||||
mexit('L’opzione «'.$argv[$i].'» richiede un parametro numerico (usa «-h» per vedere la guida).'.N,1);
|
||||
$i++;
|
||||
$opts['timeout']=$argv[$i]+0;
|
||||
break;
|
||||
case 'o':
|
||||
return($buf[1]*60*60);
|
||||
case '-l':
|
||||
case '--log':
|
||||
$opts['log']=true;
|
||||
$i++;
|
||||
break;
|
||||
case 'g':
|
||||
return($buf[1]*60*60*24);
|
||||
case '-j':
|
||||
case '--jsonwrite':
|
||||
$opts['jsonwrite']=true;
|
||||
break;
|
||||
case 'S':
|
||||
return($buf[1]*60*60*24*7);
|
||||
case '-h':
|
||||
case '--help':
|
||||
mexit($help,0);
|
||||
break;
|
||||
case 'M':
|
||||
return($buf[1]*60*60*24*30);
|
||||
break;
|
||||
case 'A':
|
||||
return($buf[1]*60*60*24*365);
|
||||
default:
|
||||
mexit('L’opzione «'.$argv[$i].'» è sconosciuta (usa «-h» per vedere la guida).'.N,1);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
return(false);
|
||||
}
|
||||
}
|
||||
|
||||
use function mysqli_real_escape_string as myesc;
|
||||
|
||||
function mexit($msg,$code) {
|
||||
global $link, $jsonf, $logf;
|
||||
lecho($msg);
|
||||
|
@ -113,7 +154,7 @@ function lecho($msg,$logonly=false) {
|
|||
global $opts, $logf;
|
||||
if (!$logonly)
|
||||
echo($msg);
|
||||
if ($opts['log'])
|
||||
if ($opts['log'] && $logf!==false)
|
||||
fwrite($logf,$msg);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue