From 0cdf966ec854fd56769aa122851515515dec727d Mon Sep 17 00:00:00 2001 From: pezcurrel Date: Sun, 17 May 2020 11:12:28 +0200 Subject: [PATCH] =?UTF-8?q?Aggiunta=20la=20possibilit=C3=A0=20di=20passarg?= =?UTF-8?q?li=20opzioni=20da=20riga=20di=20comando;=20sistemato=20un=20bac?= =?UTF-8?q?one;=20eliminata=20una=20funzione=20non=20utilizzata.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/mustard/crawler/crawler.php | 89 ++++++++++++++++++++++++--------- 1 file changed, 65 insertions(+), 24 deletions(-) diff --git a/web/mustard/crawler/crawler.php b/web/mustard/crawler/crawler.php index 42ff14e..3f62410 100755 --- a/web/mustard/crawler/crawler.php +++ b/web/mustard/crawler/crawler.php @@ -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 + 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 + 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 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); }