Implementate le whitelist
This commit is contained in:
parent
353ad24504
commit
026b333c25
3 changed files with 171 additions and 87 deletions
|
@ -28,7 +28,8 @@ $opts=array(
|
||||||
'timeout'=>5,
|
'timeout'=>5,
|
||||||
'biglistfp'=>null,
|
'biglistfp'=>null,
|
||||||
'prodlistfp'=>null,
|
'prodlistfp'=>null,
|
||||||
'blacklists'=>array()
|
'blacklists'=>array(),
|
||||||
|
'whitelists'=>array()
|
||||||
);
|
);
|
||||||
|
|
||||||
$help='DESCRIZIONE
|
$help='DESCRIZIONE
|
||||||
|
@ -38,10 +39,12 @@ $help='DESCRIZIONE
|
||||||
una che conterrà i dati di tutte le istanze di partenza e delle istanze
|
una che conterrà i dati di tutte le istanze di partenza e delle istanze
|
||||||
ad esse note (comprese quelle bloccate, escluse soltanto quelle che non
|
ad esse note (comprese quelle bloccate, escluse soltanto quelle che non
|
||||||
rispondono da un lasso di tempo impostabile), e una che conterrà solo
|
rispondono da un lasso di tempo impostabile), e una che conterrà solo
|
||||||
le istanze non bloccate, che danno possibilità di iscrizione di nuovi
|
le istanze non bloccate, la cui piattaforma è mastodon, che danno
|
||||||
utenti, il cui numero di utenti è compreso tra 11 e 30000, che
|
possibilità di iscrizione di nuovi utenti, il cui numero di utenti
|
||||||
conoscono almeno altre 500 istanze, e la cui media di toot per utente
|
è compreso tra 11 e 30000, che conoscono almeno altre 500 istanze,
|
||||||
è maggiore o uguale a 10.
|
che hanno avuto almeno 10 utenti attivi nell\'ultimo mese o, se questo
|
||||||
|
dato non è disponibile, la cui media di toot per utente è maggiore
|
||||||
|
o uguale a 10.
|
||||||
SINTASSI
|
SINTASSI
|
||||||
crawler.php -i <file> | -s <file> -b <file> -p <file> [altre opzioni]
|
crawler.php -i <file> | -s <file> -b <file> -p <file> [altre opzioni]
|
||||||
OPZIONI
|
OPZIONI
|
||||||
|
@ -85,8 +88,16 @@ OPZIONI
|
||||||
formato di questi file vedi sopra il paragrafo relativo nella
|
formato di questi file vedi sopra il paragrafo relativo nella
|
||||||
descrizione dell\'opzione «-s, --startinstancesfp». Questa opzione può
|
descrizione dell\'opzione «-s, --startinstancesfp». Questa opzione può
|
||||||
essere utilizzata più volte per specificare più file di istanze
|
essere utilizzata più volte per specificare più file di istanze
|
||||||
bloccate. Nel file di configurazione è l\'unica opzione con un formato
|
bloccate. Nel file di configurazione ha un formato particolare:
|
||||||
particolare: «blacklistfp=file1[,file2[,file3[...]]].
|
«blacklistfp=file1[,file2[,file3[...]]]».
|
||||||
|
-w, --whitelistfp
|
||||||
|
Imposta un eventuale file di istanze da non scartare mai, nemmeno
|
||||||
|
se fanno parte di una delle blacklist utilizzato o non corrispondono
|
||||||
|
ai criteri di filtraggio. Il formato di questi file è semplice:
|
||||||
|
un dominio per riga (le righe vuote o che cominciano con il carattere
|
||||||
|
«#» vengono ignorate. Questa opzione può essere utilizzata più volte
|
||||||
|
per specificare più whitelist. Nel file di configurazione
|
||||||
|
ha un formato particolare: «whitelistfp=file1[,file2[,file3[...]]]».
|
||||||
-t, --timeout <secondi>
|
-t, --timeout <secondi>
|
||||||
Imposta il timeout delle richieste http(s) in secondi.
|
Imposta il timeout delle richieste http(s) in secondi.
|
||||||
DEFAULT: '.$opts['timeout'].' secondi.
|
DEFAULT: '.$opts['timeout'].' secondi.
|
||||||
|
@ -171,6 +182,8 @@ if (!is_null($inifp)) {
|
||||||
mexit('L’opzione «excludeafter» specificata in «'.$inifp.'» non è in un formato corretto (usa «-h» per vedere la guida).'.N,1);
|
mexit('L’opzione «excludeafter» specificata in «'.$inifp.'» non è in un formato corretto (usa «-h» per vedere la guida).'.N,1);
|
||||||
} elseif ($key=='blacklists') {
|
} elseif ($key=='blacklists') {
|
||||||
$opts['blacklists']=explode(',',$val);
|
$opts['blacklists']=explode(',',$val);
|
||||||
|
} elseif ($key=='whitelists') {
|
||||||
|
$opts['whitelists']=explode(',',$val);
|
||||||
} else {
|
} else {
|
||||||
$opts[$key]=$val;
|
$opts[$key]=$val;
|
||||||
}
|
}
|
||||||
|
@ -233,6 +246,13 @@ for ($i=1; $i<$argc; $i++) {
|
||||||
$i++;
|
$i++;
|
||||||
$opts['blacklists'][]=$argv[$i];
|
$opts['blacklists'][]=$argv[$i];
|
||||||
break;
|
break;
|
||||||
|
case '-w':
|
||||||
|
case '--whitelistfp':
|
||||||
|
if ($i+1>=$argc || $argv[$i+1]=='')
|
||||||
|
mexit('L’opzione «'.$argv[$i].'» richiede un parametro di tipo file (usa «-h» per vedere la guida).'.N,1);
|
||||||
|
$i++;
|
||||||
|
$opts['whitelists'][]=$argv[$i];
|
||||||
|
break;
|
||||||
case '-l':
|
case '-l':
|
||||||
case '--loadbiglist':
|
case '--loadbiglist':
|
||||||
if ($i+1>=$argc || ($argv[$i+1]!='si' && $argv[$i+1]!='no'))
|
if ($i+1>=$argc || ($argv[$i+1]!='si' && $argv[$i+1]!='no'))
|
||||||
|
@ -292,6 +312,7 @@ if ($opts['loadbiglist']) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$blinstances=array();
|
$blinstances=array();
|
||||||
|
$wlinstances=array();
|
||||||
|
|
||||||
function loadblacklist($bluri) {
|
function loadblacklist($bluri) {
|
||||||
global $blinstances, $opts;
|
global $blinstances, $opts;
|
||||||
|
@ -314,41 +335,58 @@ function loadblacklist($bluri) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($opts['onlinecheck']) {
|
$startinstances=array();
|
||||||
|
echo('Carico il file delle istanze di partenza («'.$opts['startinstancesfp'].'») ... ');
|
||||||
|
$buf=@file_get_contents($opts['startinstancesfp']);
|
||||||
|
if ($buf!==false) {
|
||||||
|
echo('OK :-)'.N);
|
||||||
|
$buf=explode(N,$buf);
|
||||||
|
foreach ($buf as $val) {
|
||||||
|
if ($val!='' && $val[0]!='#') {
|
||||||
|
$kv=explode('|',$val);
|
||||||
|
if ($kv[1]=='') $kv[1]=null;
|
||||||
|
$startinstances[$kv[0]]=$kv[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
mexit(N.'Non ho potuto caricare il file delle istanze di partenza «'.$opts['startinstancesfp'].'», muoio.'.N,1);
|
||||||
|
}
|
||||||
|
if (count($startinstances)<1)
|
||||||
|
mexit('Il file delle istanze di partenza «'.$opts['startinstancesfp'].'» non contiene alcuna voce, muoio.'.N,1);
|
||||||
|
|
||||||
$startinstances=array();
|
foreach ($startinstances as $dom=>$bluri) {
|
||||||
echo('Carico il file delle istanze di partenza («'.$opts['startinstancesfp'].'») ... ');
|
if (!is_null($bluri)) {
|
||||||
$buf=@file_get_contents($opts['startinstancesfp']);
|
echo('Recupero la lista delle istanze bloccate da «'.$dom.'» («'.$bluri.'») ... ');
|
||||||
|
loadblacklist($bluri);
|
||||||
|
} else {
|
||||||
|
echo('NON recupero la lista delle istanze bloccate da «'.$dom.'»: la uri della stessa non è definita.'.N);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($opts['blacklists'] as $bluri) {
|
||||||
|
echo('Carico la lista delle istanze bloccate dall\'URI «'.$bluri.'» ... ');
|
||||||
|
loadblacklist($bluri);
|
||||||
|
}
|
||||||
|
sort($blinstances);
|
||||||
|
echo(count($blinstances).' istanze bloccate.'.N);
|
||||||
|
|
||||||
|
foreach ($opts['whitelists'] as $wluri) {
|
||||||
|
echo('Carico la whitelist delle istanze dall\'URI «'.$wluri.'» ... ');
|
||||||
|
$buf=@file_get_contents($wluri);
|
||||||
if ($buf!==false) {
|
if ($buf!==false) {
|
||||||
echo('OK :-)'.N);
|
echo('OK :-)'.N);
|
||||||
$buf=explode(N,$buf);
|
$buf=explode(N,$buf);
|
||||||
foreach ($buf as $val) {
|
foreach ($buf as $val) {
|
||||||
if ($val!='' && $val[0]!='#') {
|
if ($val!='' && $val[0]!='#' && !in_array($val,$wlinstances))
|
||||||
$kv=explode('|',$val);
|
$wlinstances[]=$val;
|
||||||
if ($kv[1]=='') $kv[1]=null;
|
|
||||||
$startinstances[$kv[0]]=$kv[1];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
mexit(N.'Non ho potuto caricare il file delle istanze di partenza «'.$opts['startinstancesfp'].'», muoio.'.N,1);
|
mexit(N.'Non ho potuto caricare la whitelist delle istanze «'.$wluri.'», muoio.'.N,1);
|
||||||
}
|
}
|
||||||
if (count($startinstances)<1)
|
}
|
||||||
mexit('Il file delle istanze di partenza «'.$opts['startinstancesfp'].'» non contiene alcuna voce, muoio.'.N,1);
|
sort($wlinstances);
|
||||||
|
echo(count($wlinstances).' istanze whitelistate.'.N);
|
||||||
|
|
||||||
foreach ($startinstances as $dom=>$bluri) {
|
if ($opts['onlinecheck']) {
|
||||||
if (!is_null($bluri)) {
|
|
||||||
echo('Recupero la lista delle istanze bloccate da «'.$dom.'» («'.$bluri.'») ... ');
|
|
||||||
loadblacklist($bluri);
|
|
||||||
} else {
|
|
||||||
echo('NON recupero la lista delle istanze bloccate da «'.$dom.'»: la uri della stessa non è definita.'.N);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
foreach ($opts['blacklists'] as $bluri) {
|
|
||||||
echo('Carico le istanze bloccate dall\'URI «'.$bluri.'» ... ');
|
|
||||||
loadblacklist($bluri);
|
|
||||||
}
|
|
||||||
sort($blinstances);
|
|
||||||
echo(count($blinstances).' istanze bloccate.'.N);
|
|
||||||
|
|
||||||
$context=stream_context_create(array('http'=>array('timeout'=>$opts['timeout'])));
|
$context=stream_context_create(array('http'=>array('timeout'=>$opts['timeout'])));
|
||||||
|
|
||||||
|
@ -391,39 +429,64 @@ foreach ($biglist as $dom=>$oinfo) {
|
||||||
echo('~~~~~~'.N);
|
echo('~~~~~~'.N);
|
||||||
if ($opts['onlinecheck']) {
|
if ($opts['onlinecheck']) {
|
||||||
|
|
||||||
echo('Recupero le informazioni Nodeinfo su «'.$dom.'» ('.$i.'/'.$biglistc.' - '.round(100/$biglistc*$i).'%) ... ');
|
echo('Recupero le informazioni su «'.$dom.'» ('.$i.'/'.$biglistc.' - '.round(100/$biglistc*$i).'%)'.N);
|
||||||
|
|
||||||
|
echo('Recupero le informazioni Nodeinfo ... ');
|
||||||
|
$ninfo=null;
|
||||||
$buf=@file_get_contents('https://'.$dom.'/nodeinfo/2.0',false,$context);
|
$buf=@file_get_contents('https://'.$dom.'/nodeinfo/2.0',false,$context);
|
||||||
if ($buf!==false) {
|
if ($buf!==false) {
|
||||||
echo('OK :-)'.N);
|
echo('OK :-)'.N);
|
||||||
$ninfo=json_decode($buf,true);
|
$ninfo=json_decode($buf,true);
|
||||||
if (!is_null($ninfo) && array_key_exists('software',$ninfo) && array_key_exists('name',$ninfo['software'])) {
|
|
||||||
echo('Il software è '.$ninfo['software']['name'].'!'.N);
|
|
||||||
} else {
|
|
||||||
echo('Impossibile determinare il software!'.N);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
echo('ERRORE :-('.N);
|
echo('ERRORE :-('.N);
|
||||||
}
|
}
|
||||||
|
|
||||||
echo('Recupero le informazioni API su «'.$dom.'» ('.$i.'/'.$biglistc.' - '.round(100/$biglistc*$i).'%) ... ');
|
echo('Recupero le informazioni API sull\'attività dell\'istanza ... ');
|
||||||
|
$activity=null;
|
||||||
|
$buf=@file_get_contents('https://'.$dom.'/api/v1/instance/activity',false,$context);
|
||||||
|
if ($buf!==false) {
|
||||||
|
echo('OK :-)'.N);
|
||||||
|
$activity=json_decode($buf,true);
|
||||||
|
} else {
|
||||||
|
echo('ERRORE :-('.N);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo('Recupero le informazioni API sull\'istanza ... ');
|
||||||
|
$info=null;
|
||||||
$buf=@file_get_contents('https://'.$dom.'/api/v1/instance',false,$context);
|
$buf=@file_get_contents('https://'.$dom.'/api/v1/instance',false,$context);
|
||||||
if ($buf!==false) {
|
if ($buf!==false) {
|
||||||
echo('OK :-)'.N);
|
echo('OK :-)'.N);
|
||||||
$info=json_decode($buf,true);
|
$info=json_decode($buf,true);
|
||||||
if (!is_null($oinfo) && array_key_exists('cr-checks',$oinfo))
|
if (!is_null($oinfo) && array_key_exists('X-Checks',$oinfo))
|
||||||
$info['cr-checks']=$oinfo['cr-checks'];
|
$info['X-Checks']=$oinfo['X-Checks'];
|
||||||
$info['cr-checks'][]=array('time'=>time(),'ok'=>true);
|
$info['X-Checks'][]=array('time'=>time(),'ok'=>true);
|
||||||
|
if (!is_null($ninfo)) {
|
||||||
|
if (array_key_exists('usage',$ninfo) && array_key_exists('users',$ninfo['usage'])) {
|
||||||
|
if (array_key_exists('activeMonth',$ninfo['usage']['users']))
|
||||||
|
$info['X-ActiveUsersPerMonth']=$ninfo['usage']['users']['activeMonth'];
|
||||||
|
if (array_key_exists('activeHalfyear',$ninfo['usage']['users']))
|
||||||
|
$info['X-ActiveUsersPerHalfYear']=$ninfo['usage']['users']['activeHalfyear'];
|
||||||
|
}
|
||||||
|
if (array_key_exists('software',$ninfo)) {
|
||||||
|
if (array_key_exists('name',$ninfo['software']))
|
||||||
|
$info['X-Software']=$ninfo['software']['name'];
|
||||||
|
if (array_key_exists('version',$ninfo['software']))
|
||||||
|
$info['X-Version']=$ninfo['software']['version'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!is_null($activity))
|
||||||
|
$info['X-Activity']=$activity;
|
||||||
$newbiglist[$dom]=$info;
|
$newbiglist[$dom]=$info;
|
||||||
} else {
|
} else {
|
||||||
echo('ERRORE :-( ... ');
|
echo('ERRORE :-( ... ');
|
||||||
$lastokk=null;
|
$lastokk=null;
|
||||||
if (!is_null($oinfo) && array_key_exists('cr-checks',$oinfo)) {
|
if (!is_null($oinfo) && array_key_exists('X-Checks',$oinfo)) {
|
||||||
foreach ($oinfo['cr-checks'] as $key=>$val)
|
foreach ($oinfo['X-Checks'] as $key=>$val)
|
||||||
if ($val['ok']) $lastokk=$key;
|
if ($val['ok']) $lastokk=$key;
|
||||||
}
|
}
|
||||||
if (is_null($oinfo) || is_null($lastokk) || time()-$oinfo['cr-checks'][$lastokk]['time']<=$opts['excludeafter']) {
|
if (is_null($oinfo) || is_null($lastokk) || time()-$oinfo['X-Checks'][$lastokk]['time']<=$opts['excludeafter']) {
|
||||||
echo('ma riproveremo...'.N);
|
echo('ma riproveremo...'.N);
|
||||||
$oinfo['cr-checks'][]=array('time'=>time(),'ok'=>false);
|
$oinfo['X-Checks'][]=array('time'=>time(),'ok'=>false);
|
||||||
$newbiglist[$dom]=$oinfo;
|
$newbiglist[$dom]=$oinfo;
|
||||||
} else {
|
} else {
|
||||||
echo('e non riproveremo...'.N);
|
echo('e non riproveremo...'.N);
|
||||||
|
@ -435,64 +498,81 @@ foreach ($biglist as $dom=>$oinfo) {
|
||||||
$info=$oinfo;
|
$info=$oinfo;
|
||||||
}
|
}
|
||||||
$whynot=array();
|
$whynot=array();
|
||||||
if (in_array($dom,$blinstances))
|
|
||||||
$whynot[]='Istanza blacklistata';
|
|
||||||
if (array_key_exists('uri',$info)) {
|
if (array_key_exists('uri',$info)) {
|
||||||
if (!array_key_exists('registrations',$info))
|
if (!in_array($dom,$wlinstances)) {
|
||||||
$whynot[]='Stato delle registrazioni non disponibile';
|
if (in_array($dom,$blinstances))
|
||||||
elseif ($info['registrations']==false)
|
$whynot[]='Istanza blacklistata';
|
||||||
$whynot[]='Registrazioni chiuse';
|
if (array_key_exists('X-Software',$info) && !in_array($info['X-Software'],array('mastodon','corgidon')))
|
||||||
if (!array_key_exists('stats',$info))
|
$whynot[]='Il software non è Mastodon (ma '.$info['X-Software'].')';
|
||||||
$whynot[]='Stats non disponibili';
|
if (!array_key_exists('registrations',$info))
|
||||||
elseif (!array_key_exists('user_count',$info['stats']))
|
$whynot[]='Stato delle registrazioni non disponibile';
|
||||||
$whynot[]='Numero utenti non disponibile';
|
elseif ($info['registrations']==false)
|
||||||
elseif ($info['stats']['user_count']<10 || $info['stats']['user_count']>30000)
|
$whynot[]='Registrazioni chiuse';
|
||||||
$whynot[]='Numero utenti ('.$info['stats']['user_count'].') non compreso tra 10 e 30000';
|
if (!array_key_exists('stats',$info)) {
|
||||||
elseif (!array_key_exists('domain_count',$info['stats']))
|
$whynot[]='Stats non disponibili';
|
||||||
$whynot[]='Numero istanze conosciute non disponibile';
|
} else {
|
||||||
elseif ($info['stats']['domain_count']<500)
|
if (!array_key_exists('user_count',$info['stats']))
|
||||||
$whynot[]='Numero istanze conosciute minore di 500';
|
$whynot[]='Numero utenti non disponibile';
|
||||||
elseif (!array_key_exists('status_count',$info['stats']))
|
elseif ($info['stats']['user_count']<10 || $info['stats']['user_count']>30000)
|
||||||
$whynot[]='Numero di toots non disponibile';
|
$whynot[]='Numero utenti ('.$info['stats']['user_count'].') non compreso tra 10 e 30000';
|
||||||
elseif ($info['stats']['status_count']/$info['stats']['user_count']<10)
|
if (!array_key_exists('domain_count',$info['stats']))
|
||||||
$whynot[]='Media dei toots per utente minore di 10';
|
$whynot[]='Numero istanze conosciute non disponibile';
|
||||||
if (!array_key_exists('contact_account',$info) || is_null($info['contact_account']))
|
elseif ($info['stats']['domain_count']<500)
|
||||||
$whynot[]='Informazioni sull\'account admin principale non disponibili';
|
$whynot[]='Numero istanze conosciute minore di 500';
|
||||||
elseif (!array_key_exists('created_at',$info['contact_account']))
|
/* if (!array_key_exists('status_count',$info['stats']))
|
||||||
$whynot[]='Data di creazione dell\'account admin principale non disponibile';
|
$whynot[]='Numero di toots non disponibile';
|
||||||
elseif (time()-strtotime($info['contact_account']['created_at'])<6*31*24*60*60)
|
elseif ($info['stats']['status_count']/$info['stats']['user_count']<10)
|
||||||
$whynot[]='L\'account admin principale risulta esser stato creato meno di 6 mesi fa';
|
$whynot[]='Media dei toots per utente minore di 10';*/
|
||||||
|
}
|
||||||
|
if (array_key_exists('X-ActiveUsersPerMonth',$info)) {
|
||||||
|
if ($info['X-ActiveUsersPerMonth']<10)
|
||||||
|
$whynot[]='Numero utenti attivi nell\'ultimo mese minore di 10';
|
||||||
|
} elseif (array_key_exists('stats',$info) && array_key_exists('status_count',$info['stats']) && array_key_exists('user_count',$info['stats']) && $info['stats']['user_count']>0 && $info['stats']['status_count']/$info['stats']['user_count']<10) {
|
||||||
|
$whynot[]='Media dei toots per utente minore di 10';
|
||||||
|
}
|
||||||
|
if (!array_key_exists('contact_account',$info) || is_null($info['contact_account'])) {
|
||||||
|
$whynot[]='Informazioni sull\'account admin principale non disponibili';
|
||||||
|
}/* else {
|
||||||
|
if (!array_key_exists('created_at',$info['contact_account']))
|
||||||
|
$whynot[]='Data di creazione dell\'account admin principale non disponibile';
|
||||||
|
elseif (time()-strtotime($info['contact_account']['created_at'])<6*31*24*60*60)
|
||||||
|
$whynot[]='L\'account admin principale risulta esser stato creato meno di 6 mesi fa';
|
||||||
|
}*/
|
||||||
|
} else {
|
||||||
|
echo('«'.$dom.'» è whitelistata, la teniamo a prescindere.'.N);
|
||||||
|
}
|
||||||
} elseif (!array_key_exists($dom,$prodlist)) {
|
} elseif (!array_key_exists($dom,$prodlist)) {
|
||||||
$whynot[]='Info non disponibili, e l\'istanza non era già presente nella lista delle istanze occhei';
|
$whynot[]='Info non disponibili, e l\'istanza non era già presente nella lista delle istanze occhei';
|
||||||
}
|
}
|
||||||
if (count($whynot)==0) {
|
if (count($whynot)==0) {
|
||||||
if (array_key_exists($dom,$prodlist)) {
|
if (array_key_exists($dom,$prodlist)) {
|
||||||
if (array_key_exists('short_description',$info) && (!array_key_exists('short_description',$prodlist[$dom]) || $prodlist[$dom]['short_description']!=$info['short_description'])) {
|
if (array_key_exists('short_description',$info) && (!array_key_exists('short_description',$prodlist[$dom]) || $prodlist[$dom]['short_description']!=$info['short_description'])) {
|
||||||
$info['short_description_changed']=true;
|
$info['X-ShortDescriptionChanged']=true;
|
||||||
$info['prev_short_description']=$prodlist[$dom]['short_description'];
|
$info['X-PrevShortDescription']=$prodlist[$dom]['short_description'];
|
||||||
} else {
|
} else {
|
||||||
$info['short_description_changed']=false;
|
$info['X-ShortDescriptionChanged']=false;
|
||||||
}
|
}
|
||||||
if (array_key_exists('description',$info) && (!array_key_exists('description',$prodlist[$dom]) || $prodlist[$dom]['description']!=$info['description'])) {
|
if (array_key_exists('description',$info) && (!array_key_exists('description',$prodlist[$dom]) || $prodlist[$dom]['description']!=$info['description'])) {
|
||||||
$info['description_changed']=true;
|
$info['X-DescriptionChanged']=true;
|
||||||
$info['prev_description']=$prodlist[$dom]['description'];
|
$info['X-PrevDescription']=$prodlist[$dom]['description'];
|
||||||
} else {
|
} else {
|
||||||
$info['description_changed']=false;
|
$info['X-DescriptionChanged']=false;
|
||||||
}
|
}
|
||||||
echo('«'.$dom.'» era nella lista delle istanze occhei ed è stata AGGIORNATA! :-)'.N);
|
echo('«'.$dom.'» era nella lista delle istanze occhei ed è stata AGGIORNATA! :-)'.N);
|
||||||
if (array_key_exists('show',$prodlist[$dom]))
|
if (array_key_exists('X-Show',$prodlist[$dom]))
|
||||||
$info['show']=$prodlist[$dom]['show'];
|
$info['X-Show']=$prodlist[$dom]['X-Show'];
|
||||||
else
|
else
|
||||||
$info['show']=-1;
|
$info['X-Show']=-1;
|
||||||
} else {
|
} else {
|
||||||
$info['short_description_changed']=false;
|
$info['X-ShortDescriptionChanged']=false;
|
||||||
$info['description_changed']=false;
|
$info['X-DescriptionChanged']=false;
|
||||||
$info['show']=-1;
|
$info['X-Show']=-1;
|
||||||
echo('«'.$dom.'» non era nella lista delle istanze occhei ed è stata AGGIUNTA! :-)'.N);
|
echo('«'.$dom.'» non era nella lista delle istanze occhei ed è stata AGGIUNTA! :-)'.N);
|
||||||
}
|
}
|
||||||
$prodlist[$dom]=$info;
|
$prodlist[$dom]=$info;
|
||||||
} else {
|
} else {
|
||||||
if (array_key_exists($dom,$prodlist)) {
|
if (array_key_exists($dom,$prodlist)) {
|
||||||
|
unset($prodlist[$dom]);
|
||||||
echo('«'.$dom.'» era nella lista delle istanze occhei ma è stata SCARTATA! :-('.N);
|
echo('«'.$dom.'» era nella lista delle istanze occhei ma è stata SCARTATA! :-('.N);
|
||||||
} else {
|
} else {
|
||||||
echo('«'.$dom.'» non era nella lista delle istanze occhei e NON CI È ENTRATA! :-('.N);
|
echo('«'.$dom.'» non era nella lista delle istanze occhei e NON CI È ENTRATA! :-('.N);
|
||||||
|
@ -501,13 +581,15 @@ foreach ($biglist as $dom=>$oinfo) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
echo('~~~~~~'.N);
|
||||||
|
|
||||||
if ($opts['onlinecheck']) {
|
if ($opts['onlinecheck']) {
|
||||||
$json=json_encode($newbiglist,JSON_PRETTY_PRINT);
|
$json=json_encode($newbiglist,JSON_PRETTY_PRINT);
|
||||||
file_put_contents($opts['biglistfp'],$json);
|
file_put_contents($opts['biglistfp'],$json);
|
||||||
$newbiglistc=count($newbiglist);
|
$newbiglistc=count($newbiglist);
|
||||||
$diff=$newbiglistc-$ibiglistc;
|
$diff=$newbiglistc-$ibiglistc;
|
||||||
if ($diff>=0) $diff='+'.$diff;
|
if ($diff>=0) $diff='+'.$diff;
|
||||||
echo('Totale istanze nella listona: '.$newbiglistc.' ('.$diff.' rispetto all’ultima volta)'.N);
|
echo('Totale istanze nella listona: '.$newbiglistc.' ('.$diff.' rispetto all\'ultima volta)'.N);
|
||||||
} else {
|
} else {
|
||||||
echo('Totale istanze nella listona: '.count($biglist).N);
|
echo('Totale istanze nella listona: '.count($biglist).N);
|
||||||
}
|
}
|
||||||
|
@ -515,6 +597,6 @@ $json=json_encode($prodlist,JSON_PRETTY_PRINT);
|
||||||
file_put_contents($opts['prodlistfp'],$json);
|
file_put_contents($opts['prodlistfp'],$json);
|
||||||
$diff=count($prodlist)-$iprodlistc;
|
$diff=count($prodlist)-$iprodlistc;
|
||||||
if ($diff>=0) $diff='+'.$diff;
|
if ($diff>=0) $diff='+'.$diff;
|
||||||
echo('Totale istanze nella listina di quelle occhei: '.count($prodlist).' ('.$diff.' rispetto all’ultima volta)'.N);
|
echo('Totale istanze nella listina di quelle occhei: '.count($prodlist).' ('.$diff.' rispetto all\'ultima volta)'.N);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -6,3 +6,4 @@ timeout=5
|
||||||
biglistfp=biglist_pant.json
|
biglistfp=biglist_pant.json
|
||||||
prodlistfp=prodlist_pant.json
|
prodlistfp=prodlist_pant.json
|
||||||
blacklists=blacklist_cagi.txt
|
blacklists=blacklist_cagi.txt
|
||||||
|
whitelists=whitelist_sorellanza.txt
|
||||||
|
|
|
@ -6,3 +6,4 @@ timeout=5
|
||||||
biglistfp=biglist.json
|
biglistfp=biglist.json
|
||||||
prodlistfp=prodlist.json
|
prodlistfp=prodlist.json
|
||||||
blacklists=blacklist_cagi.txt
|
blacklists=blacklist_cagi.txt
|
||||||
|
whitelists=whitelist_sorellanza.txt
|
||||||
|
|
Loading…
Reference in a new issue