|
@@ -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;
|
|
|
-
|
|
|
-function tosec($str) {
|
|
|
- if (preg_match('/^([0-9]+)([smogSMA]?)/',$str,$buf)===1) {
|
|
|
- switch ($buf[2]) {
|
|
|
- case '':
|
|
|
- case 's':
|
|
|
- return($buf[1]);
|
|
|
+$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.
|
|
|
+
|
|
|
+ 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);
|
|
|
}
|
|
|
|