Don’t use “black” as derogatory (“blacklist” -> “list of noxious instances”, etc.)

This commit is contained in:
pezcurrel 2022-11-29 17:36:49 +01:00
parent 045515dd7d
commit 1a6446e82b
11 changed files with 80 additions and 77 deletions

View file

@ -252,13 +252,13 @@ function truncn($num,$tab,$col,$ctx) {
);
$context=stream_context_create($contextopts);*/
$blacklist=array();
echo('Carico la blacklist dal database...'.N);
$res=mysqli_query($link,'SELECT * FROM Blacklist')
$noxlist=array();
echo('Carico la lista delle istanze nocive dal database...'.N);
$res=mysqli_query($link,'SELECT * FROM Noxious')
or mexit(__LINE__.': '.mysqli_error($link).N,3);
echo(mysqli_num_rows($res).' istanze nella blacklist.'.N);
echo(mysqli_num_rows($res).' istanze nella lista delle istanze nocive.'.N);
while($row=mysqli_fetch_assoc($res)) {
$blacklist[$row['Domain']]=$row;
$noxlist[$row['Domain']]=$row;
}
function pgdatetomy($pgdate) {
@ -288,9 +288,9 @@ function blpgdumplinetomy($line) {
}
if (!$riprendi) {
$blacklistnew=array();
$noxlistnew=array();
$insts=array();
echo('Carico le istanze di riferimento per le blacklist...'.N);
echo('Carico le istanze di riferimento per le liste delle istanze nocive...'.N);
$res=mysqli_query($link,'SELECT Domain FROM StartNodes')
or mexit(__LINE__.': '.mysqli_error($link).N,3);
echo(mysqli_num_rows($res).' istanze di riferimento.'.N);
@ -310,7 +310,7 @@ if (!$riprendi) {
} else {
echo('ERRORE: '.$buf['cont'].N);
}*/
echo('Recupero la blacklist di «'.$row['Domain'].'» ... ');
echo('Recupero la lista delle istanze nocive di «'.$row['Domain'].'» ... ');
$buf=@getfc('https://'.$row['Domain'].'/domain_blocks.txt',$opts['timeout']);
if ($buf['cont']!==false) {
echo('OK :-)'.N);
@ -318,10 +318,10 @@ if (!$riprendi) {
foreach ($buf as $line) {
if (preg_match('/(^#.*$)|(^\s*$)/',$line)===0) {
$brow=blpgdumplinetomy($line);
if (!array_key_exists($brow['Domain'],$blacklist)) {
$blacklistnew[$brow['Domain']]=$brow;
if (!array_key_exists($brow['Domain'],$noxlist)) {
$noxlistnew[$brow['Domain']]=$brow;
}
$blacklist[$brow['Domain']]=$brow;
$noxlist[$brow['Domain']]=$brow;
}
}
} else {
@ -329,12 +329,12 @@ if (!$riprendi) {
}
}
foreach ($blacklistnew as $row) {
if (!willtrunc($row['Domain'],'Blacklist','Domain')) {
if (!$opts['dryrun']) mysqli_query($link,'INSERT INTO Blacklist (ID, Domain, CreatedAt, ModifiedAt, Severity, RejectMedia, RejectReports, PrivateComment, PublicComment) VALUES (NULL, \''.myesc($link,$row['Domain']).'\', \''.myesc($link,$row['CreatedAt']).'\', \''.myesc($link,$row['ModifiedAt']).'\', \''.myesc($link,$row['Severity']).'\', \''.myesc($link,$row['RejectMedia']).'\', \''.myesc($link,$row['RejectReports']).'\', NULL, \''.myesc($link,$row['Domain']).'\')')
foreach ($noxlistnew as $row) {
if (!willtrunc($row['Domain'],'Noxious','Domain')) {
if (!$opts['dryrun']) mysqli_query($link,'INSERT INTO Noxious (ID, Domain, CreatedAt, ModifiedAt, Severity, RejectMedia, RejectReports, PrivateComment, PublicComment) VALUES (NULL, \''.myesc($link,$row['Domain']).'\', \''.myesc($link,$row['CreatedAt']).'\', \''.myesc($link,$row['ModifiedAt']).'\', \''.myesc($link,$row['Severity']).'\', \''.myesc($link,$row['RejectMedia']).'\', \''.myesc($link,$row['RejectReports']).'\', NULL, \''.myesc($link,$row['Domain']).'\')')
or mexit(__LINE__.': '.mysqli_error($link).N,3);
} else {
echo('Non ho potuto inserire «'.$row['Domain'].'» nella tabella delle istanze blacklistate perché il dominio è troppo lungo per il campo corrispondente nel DB.');
echo('Non ho potuto inserire «'.$row['Domain'].'» nella tabella delle istanze nocive perché il dominio è troppo lungo per il campo corrispondente nel DB.');
}
}
@ -371,10 +371,10 @@ if (!$riprendi) {
sort($insts);
// shuffle($insts);
ksort($blacklist);
ksort($blacklistnew);
ksort($noxlist);
ksort($noxlistnew);
echo('Istanze recuperate: '.count($insts).N);
echo('Istanze blacklistate: '.count($blacklist).', di cui '.count($blacklistnew).' nuove aggiunte al DB.'.N);
echo('Istanze nocive: '.count($noxlist).', di cui '.count($noxlistnew).' nuove aggiunte al DB.'.N);
$instsf=@fopen($instsjfp,'w')
or mexit('Non ho potuto aprire in scrittura il file «'.$instsjfp.'».'.N,1);
@ -795,10 +795,10 @@ while ($i<$cinsts) {
}
} else {
echo('«'.$dom.'» non risponde e non è nel database, la aggiungo.'.N);
(array_key_exists($dom,$blacklist)) ? $black='1' : $black='0';
(array_key_exists($dom,$noxlist)) ? $noxious='1' : $noxious='0';
// "New=0" e nessun FirstSeen (quindi NULL) perché non è nuova e non è vista per la prima volta finché non risponde la prima volta
if (!$opts['dryrun']) {
mysqli_query($link,'INSERT INTO Instances SET New=0, Good=0, Chosen=0, Visible=0, Blacklisted='.$black.', URI=\''.myesc($link,$dom).'\', LastCheckOk=0') or mexit(__LINE__.': '.mysqli_error($link).N,3);
mysqli_query($link,'INSERT INTO Instances SET New=0, Good=0, Chosen=0, Visible=0, Noxious='.$noxious.', URI=\''.myesc($link,$dom).'\', LastCheckOk=0') or mexit(__LINE__.': '.mysqli_error($link).N,3);
$instid=mysqli_insert_id($link);
mysqli_query($link,'INSERT INTO InstChecks SET InstID='.$instid.', Time='.$now.', Status=0') or mexit(__LINE__.': '.mysqli_error($link).N,3);
} else {
@ -827,9 +827,9 @@ while ($i<$cinsts) {
$qok++;
if (!is_null($ismast))
($ismast) ? $ismast=1 : $ismast=0;
$instrow=array('ID'=>null, 'FirstSeen'=>null, 'IsMastodon'=>$ismast, 'Dead'=>0, 'New'=>0, 'Good'=>0, 'Chosen'=>0, 'Priority'=>null, 'Visible'=>0, 'Blacklisted'=>0, 'URI'=>null, 'Title'=>null, 'ShortDesc'=>null, 'LongDesc'=>null, 'OurDesc'=>null, 'OurDescEN'=> null, 'LocalityID'=>null, 'OurLangsLock'=>0, 'Email'=>null, 'Software'=>null, 'Version'=>null, 'UserCount'=>null, 'StatusCount'=>null, 'DomainCount'=>null, 'ActiveUsersMonth'=>null, 'ActiveUsersHalfYear'=>null, 'Thumb'=>null, 'RegOpen'=>null, 'RegReqApproval'=>null, 'MaxTootChars'=>null, 'AdmAccount'=>null, 'AdmDisplayName'=>null, 'AdmCreatedAt'=>null, 'AdmNote'=>null, 'AdmURL'=>null, 'AdmAvatar'=>null, 'AdmHeader'=>null, 'LastCheckOk'=>1, 'GuestID'=>null, 'LastGuestEdit'=>null);
if (array_key_exists($info['uri'],$blacklist))
$instrow['Blacklisted']=1;
$instrow=array('ID'=>null, 'FirstSeen'=>null, 'IsMastodon'=>$ismast, 'Dead'=>0, 'New'=>0, 'Good'=>0, 'Chosen'=>0, 'Priority'=>null, 'Visible'=>0, 'Noxious'=>0, 'URI'=>null, 'Title'=>null, 'ShortDesc'=>null, 'LongDesc'=>null, 'OurDesc'=>null, 'OurDescEN'=> null, 'LocalityID'=>null, 'OurLangsLock'=>0, 'Email'=>null, 'Software'=>null, 'Version'=>null, 'UserCount'=>null, 'StatusCount'=>null, 'DomainCount'=>null, 'ActiveUsersMonth'=>null, 'ActiveUsersHalfYear'=>null, 'Thumb'=>null, 'RegOpen'=>null, 'RegReqApproval'=>null, 'MaxTootChars'=>null, 'AdmAccount'=>null, 'AdmDisplayName'=>null, 'AdmCreatedAt'=>null, 'AdmNote'=>null, 'AdmURL'=>null, 'AdmAvatar'=>null, 'AdmHeader'=>null, 'LastCheckOk'=>1, 'GuestID'=>null, 'LastGuestEdit'=>null);
if (array_key_exists($info['uri'],$noxlist))
$instrow['Noxious']=1;
$instrow['URI']=$info['uri'];
if (akeavinn('title',$info))
$instrow['Title']=nempty(truncs($info['title'],'Instances','Title','«'.$instrow['URI'].'»'));
@ -885,8 +885,8 @@ while ($i<$cinsts) {
}
$whynot=array();
if ($instrow['Blacklisted']==1)
$whynot[]='è nella blacklist';
if ($instrow['Noxious']==1)
$whynot[]='è nociva';
if (is_null($instrow['RegOpen'])) {
$whynot[]='non se ne conosce lo stato delle registrazioni (aperte/chiuse)';
} elseif ($instrow['RegOpen']==0) {

View file

@ -21,7 +21,7 @@ define('N',"\n");
$opts=array(
'setold'=>false,
'setold_new_period'=>30*24*60*60,// se un'istanza è nuova, dopo 30 giorni non lo è più
'setblack'=>false,
'setnoxious'=>false,
'shuffle'=>false,
'updstats'=>false,
'clean'=>false,
@ -40,9 +40,9 @@ $help='mustool.php
AZIONI
setold
setta New=0 per le istanze che non sono più nuove.
setblack
Setta Blacklisted=1 per le istanze presenti nella blacklist,
Blacklisted=0 per quelle che non lo sono.
setnoxious
Setta Noxious=1 nella tabella Instances per le istanze presenti nella
tabella Noxious, Noxious=0 per quelle che non lo sono.
shuffle
Randomizza la lista delle istanze (i valori della colonna RPos).
updstats
@ -76,9 +76,9 @@ for ($i=1; $i<$argc; $i++) {
} elseif ($argv[$i]=='setold') {
$dosome=true;
$opts['setold']=true;
} elseif ($argv[$i]=='setblack') {
} elseif ($argv[$i]=='setnoxious') {
$dosome=true;
$opts['setblack']=true;
$opts['setnoxious']=true;
} elseif ($argv[$i]=='shuffle') {
$dosome=true;
$opts['shuffle']=true;
@ -122,12 +122,12 @@ if ($opts['setold']) {
echo('fatto! Righe coinvolte: '.mysqli_affected_rows($link).N);
}
if ($opts['setblack']) {
echo('Setto Blacklisted=1 per le istanze blacklistate ... ');
mysqli_query($link,'UPDATE Instances SET Blacklisted=1 WHERE URI IN (SELECT Domain FROM Blacklist)') or mexit(__LINE__.': '.mysqli_error($link).N,2);
if ($opts['setnoxious']) {
echo('Setto Noxious=1 nella tabella Instances per le istanze listate nella tabella Noxious ... ');
mysqli_query($link,'UPDATE Instances SET Noxious=1 WHERE URI IN (SELECT Domain FROM Noxious)') or mexit(__LINE__.': '.mysqli_error($link).N,2);
echo('fatto! Righe coinvolte: '.mysqli_affected_rows($link).N);
echo('Setto Blacklisted=0 per le istanze non blacklistate ... ');
mysqli_query($link,'UPDATE Instances SET Blacklisted=0 WHERE URI NOT IN (SELECT Domain FROM Blacklist)') or mexit(__LINE__.': '.mysqli_error($link).N,2);
echo('Setto Noxious=0 nella tabella Instances per le istanze non listate nella tabella Noxious ... ');
mysqli_query($link,'UPDATE Instances SET Noxious=0 WHERE URI NOT IN (SELECT Domain FROM Noxious)') or mexit(__LINE__.': '.mysqli_error($link).N,2);
echo('fatto! Righe coinvolte: '.mysqli_affected_rows($link).N);
}

View file

@ -8,7 +8,7 @@ echo('</nav>
<h4>'._('Translation').'</h4>
<p>'._('Please help us make this site better by contributing to its translation on <a href="https://hosted.weblate.org/projects/mastodon-help/site/">Weblate</a>! :-)').'</p>
<h4>'._('Reporting problems').'</h4>
<p>'._('You can report any problem you may experience with the site (bugs, wrong translations, instances we should blacklist in our search engine because they accept fascist / racist / sexist / ableist / sovereignist contents) to us at <span class="magt">masthelp[at]insicuri.net</span>.').'</p>
<p>'._('You can report any problem you may experience with the site (bugs, wrong translations, instances we should exclude by default in our search engine because they accept fascist / racist / sexist / ableist / sovereignist contents) to us at <span class="magt">masthelp[at]insicuri.net</span>.').'</p>
</section>
</div>
</div>'.N);

View file

@ -1,5 +1,6 @@
--- Contenuto ---
- rinominare "blacklist" in qualcos'altro -> "nocive"
- correggere "Chi ne porta avanti lo sviluppo non ha alcun copyright sul software che realizza e mette a disposizione gratuitamente"
- correggere "uno smanettone"
- correggere, in 6.1, "gente propria"?
@ -11,9 +12,11 @@
--- Tech ---
- mustool.php: aggiungere possibilità di cancellare record InstActivity, InstChecks, Notifications più vecchi di tot tempo (ZHits viene già pulita da "updstats")
- tutto il "condimento" (script di backup e di update) metterlo in una sottodir di clitools
- instances.php: possibilità di linkare una singola istanza (id=x)
* mustool.php: aggiungere possibilità di cancellare record InstActivity, InstChecks, Notifications più vecchi di tot tempo (ZHits viene già pulita da "updstats")
* fare qualcosa perché il backup venga mandato da qualche parte: per e-mail ora non va più perché l'allegato è troppo grosso
- un tasto sulla ricerca istanze per togliere tutti i limiti tranne "non è blacklistata"
- un tasto sulla ricerca istanze per togliere tutti i limiti tranne "non è nociva"
* l'ordine casuale fa casino con il paginamento...
- aggiungere alle keyword per seo "fediverso", e altro?
* "consigliata": migliorare la leggibilità
@ -44,9 +47,9 @@
* chiedere a redglow e paulbutgold se vogliono essere messi nella lista di chi ha contribuito
* statistiche minime
~ pagina statistiche (totali e di ricerca: numero istanze, numero utenti, partecipazione(?))
? pagina blacklistate
? pagina istanze nocive
~ ordinamento
- se è Blacklisted dire perché interrogando la tabella Blacklisted
- se è Noxious dire perché interrogando la tabella Noxious
- evidenziare espressioni corrispondenti alla ricerca
- possibilità di settare tutti i parametri "senza constraints" con un solo tasto
- un ultimo giro di aggiornamento delle traduzioni
@ -68,7 +71,7 @@
* spostare i flag di esclusione sotto il resto
* se InstOurLangs è null cercare e riportare InstLangs - fatto, impostando InstOurLangs come InstLangs in crawler.php se InstOurLangs è NULL e InstLangs no
* blacklistare byoblu
* mettere tra le nocive byoblu
* possibilità di escludere quelle con registrazione soggetta ad approvazione
* possibilità di escludere quelle che non han risposto all'ultimo check, vedi sotto
* lastcheck bool in tabella Instances, per poterlo verificare facilmente
@ -79,7 +82,7 @@
! possibilità di includere nella ricerca per lingua anche le istanze senza lingua specificata
! un ultimo tentativo prima di dichiararla morta in crawler.php (no perché viene già fatto a monte)
* crawler.php, peerscrawl.php: verificare perché stderr viene indirizzato a stdout, fare in modo che lo sia sempre a livello di script - dipende da "display_errors" in php.ini, per default li manda a stdout, bona lè* crawler.php: aggiornamento stato "New" e "Blacklisted" in uno script a parte - fatto, in mustool.php
* crawler.php, peerscrawl.php: verificare perché stderr viene indirizzato a stdout, fare in modo che lo sia sempre a livello di script - dipende da "display_errors" in php.ini, per default li manda a stdout, bona lè* crawler.php: aggiornamento stato "New" e "Noxious" in uno script a parte - fatto, in mustool.php
* crawler.php e peerscrawl.php: devono creare un lockfile all'esecuzione e cancellarlo quando escono (sia per errore, sia per uscita normale); se esiste, uscire con errore; più un'opzione per forzare l'esecuzione anche già in presenza di lockfile.
* crawler.php: quando instances.job e currinst.job esistono, oltre a --restore serve anche unopzione che forzi l'esecuzione.
* crawler.php: NON ripristinare sessione interrotta se non viene esplicitato con opzione (da aggiungere)

View file

@ -161,7 +161,7 @@ mysqli_set_charset($link,'utf8mb4');
$res=mysqli_query($link,'SELECT COUNT(ID) AS tinsts, SUM(UserCount) AS tusers, SUM(StatusCount) AS tstatuses, SUM(ActiveUsersMonth) AS tactusers FROM Instances WHERE Instances.Dead=0 AND Instances.IsMastodon=1 AND Instances.FirstSeen IS NOT NULL') or muorimeglio(__LINE__.': '.mysqli_error($link),true);
$row=mysqli_fetch_assoc($res);
echo(_('<div id="help" class="helpd"><p class="intro">This is our search engine for Mastodon instances. It works this way: data of already indexed instances gets updated every night, and a shuffling occurs for the “random ordering”; also, once a week, during the night between Tuesday and Wednesday, new instances get searched for and added to the database.</p><p class="intro">Advanced search criteria are customizable, but by default they reflect our fondness for a decentralized and egalitarian Fediverse; with our blacklist we try to not give visibility to instances accepting fascist, racist, sexist, ableist, sovereignist contents.</p></div>').N);
echo(_('<div id="help" class="helpd"><p class="intro">This is our search engine for Mastodon instances. It works this way: data of already indexed instances gets updated every night, and a shuffling occurs for the “random ordering”; also, once a week, during the night between Tuesday and Wednesday, new instances get searched for and added to the database.</p><p class="intro">Advanced search criteria are customizable, but by default they reflect our fondness for a decentralized and egalitarian Fediverse, and we try to exclude instances accepting fascist, racist, sexist, ableist, sovereignist contents.</p></div>').N);
printf(_('<p class="introe">We currently count <span class="statd">%s</span> Mastodon instances, with <span class="statd">%s</span> users (<span class="statd">%s</span> active during last month) and <span class="statd">%s</span> published statuses.</p>').N, fnum($row['tinsts'],0,$dlang), fnum($row['tusers'],0,$dlang), fnum($row['tactusers'],0,$dlang), fnum($row['tstatuses'],0,$dlang));
// <p class="intro">Nella prima versione stabile daremo a* admin delle istanze compatibili con questa politica la possibilità di descrivere ulteriormente la propria istanza con questi campi, tutti facoltativi: “Descrizione in inglese” (per le istanze la cui descrizione è in altre lingue), “Località” (se listanza è particolarmente legata a un territorio), “Lingue” (se le lingue utilizzate prevalentemente sullistanza non corrispondono a quelle rilevate automaticamente dal nostro crawler), “Modalità di copertura dei costi” (per esempio “Autonoma”, “Sottoscrizioni volontarie degli utenti”, “Iniziative benefit”), “Regole sui contenuti” (per esempio “Tag NSFW per i nudi”, “No link a siti di partiti politici”, “No pubblicità”, “Content Warning prima degli spoiler”), e “Categorie” (per esempio “Generalista”, “Astronomia”, “Politica”, “Musica folk”).</p>
@ -170,14 +170,14 @@ printf(_('<p class="introe">We currently count <span class="statd">%s</span> Mas
$maxuinp=10000000000;
if ((array_key_exists('black',$_GET) && $_GET['black']=='1') || !array_key_exists('black',$_GET)) {
$_GET['cbblack']=' checked';
$_GET['black']=1;
if ((array_key_exists('noxious',$_GET) && $_GET['noxious']=='1') || !array_key_exists('noxious',$_GET)) {
$_GET['cbnoxious']=' checked';
$_GET['noxious']=1;
} else {
$_GET['cbblack']='';
$_GET['black']=0;
$_GET['cbnoxious']='';
$_GET['noxious']=0;
}
//echo('<p>black: '.$_GET['black'].'</p>');
//echo('<p>noxious: '.$_GET['noxious'].'</p>');
if ((array_key_exists('creg',$_GET) && $_GET['creg']=='1') || !array_key_exists('creg',$_GET)) {
$_GET['cbcreg']=' checked';
@ -279,7 +279,7 @@ if (array_key_exists('p',$_GET) && preg_match('#^[0-9]+$#',$_GET['p'])===1) $p=$
echo('<form method="get" id="curvf" name="curvf">
<input name="advc" type="hidden" value="'.$_GET['advc'].'">
<input name="black" type="hidden" value="'.$_GET['black'].'">
<input name="noxious" type="hidden" value="'.$_GET['noxious'].'">
<input name="creg" type="hidden" value="'.$_GET['creg'].'">
<input name="appr" type="hidden" value="'.$_GET['appr'].'">
<input name="lcok" type="hidden" value="'.$_GET['lcok'].'">
@ -332,10 +332,10 @@ echo('</select>
<div class="sdinput"><input type="number" id="minki" name="minki" min="0" max="100000" class="sinput" value="'.$_GET['minki'].'"></div>
</div>
<div class="sdrow">
<div class="sdlabel"><label for="cbblack" title="'._('Exclude blacklisted instances').'">'._('Exclude blacklisted').'</label></div>
<div class="sdlabel"><label for="cbnoxious" title="'._('Exclude noxious instances').'">'._('Exclude noxious').'</label></div>
<div class="sdinput">
<input type="checkbox" class="sckbox" id="cbblack" value="1"'.$_GET['cbblack'].' onchange="if (this.checked) document.getElementById(\'black\').value=1; else document.getElementById(\'black\').value=0;">
<input type="hidden" id="black" name="black" value="'.$_GET['black'].'">
<input type="checkbox" class="sckbox" id="cbnoxious" value="1"'.$_GET['cbnoxious'].' onchange="if (this.checked) document.getElementById(\'noxious\').value=1; else document.getElementById(\'noxious\').value=0;">
<input type="hidden" id="noxious" name="noxious" value="'.$_GET['noxious'].'">
</div>
</div>
<div class="sdrow">
@ -398,7 +398,7 @@ swhelp();
$joins=array();
$wheres=array();
$wheres[]='Instances.Dead=0 AND Instances.IsMastodon=1 AND Instances.FirstSeen IS NOT NULL';
if ($_GET['black']==1) $wheres[]='Instances.Blacklisted=0';
if ($_GET['noxious']==1) $wheres[]='Instances.Noxious=0';
if ($_GET['creg']==1) $wheres[]='Instances.RegOpen=1';
if ($_GET['appr']==1) $wheres[]='Instances.RegReqApproval=0';
if ($_GET['lcok']==1) $wheres[]='Instances.LastCheckOk=1';
@ -475,8 +475,8 @@ while ($if<$il && $row=mysqli_fetch_assoc($res)) {
else
$out.=$row['MaxTootChars'];
$out.='</div>'.N;
$out.='<div><span class="ilab">'._('Blacklisted').'</span> ';
($row['Blacklisted']==1) ? $out.='<span class="ibad">'._('Yes').'</span>' : $out.='<span class="igood">'._('No').'</span>';
$out.='<div><span class="ilab">'._('Noxious').'</span> ';
($row['Noxious']==1) ? $out.='<span class="ibad">'._('Yes').'</span>' : $out.='<span class="igood">'._('No').'</span>';
$out.='</div>'.N;
$out.='<div><span class="ilab">'._('New').'</span> ';
($row['New']==1) ? $out.='<span class="ivgood">'._('Yes!').'</span>' : $out.=_('No');

View file

@ -31,7 +31,7 @@
* viewinst.php
- pagina gestione accounts
- pagina gestione proprio account
- pagina gestione blacklist
- pagina gestione nocive
- pagina reset password
- una pagina che dia la possibilità di vedere le istanze che non rispondono da un tot di tempo impostabile, e di marcarle in modo che non vengano più controllate, fino a quando non sono "smarcate" (crawler.php dev'essere modificato all'uopo)
? help online

View file

@ -317,7 +317,7 @@ function ckf() {
<?php
if ($account['Level']!='guest')
echo('<table class="cbtab">
<tr><td><label for="Blacklisted">Blacklisted:</label></td><td>&nbsp;<input type="checkbox" name="Blacklisted" id="Blacklisted"'.check($inst,'Blacklisted').'></td></tr>
<tr><td><label for="Noxious">Noxious:</label></td><td>&nbsp;<input type="checkbox" name="Noxious" id="Noxious"'.check($inst,'Noxious').'></td></tr>
<tr><td><label for="New">New:</label></td><td>&nbsp;<input type="checkbox" name="New" id="New"'.check($inst,'New').'></td></tr>
<tr><td><label for="Chosen">Chosen:</label></td><td>&nbsp;<input type="checkbox" name="Chosen" id="Chosen"'.check($inst,'Chosen').'></td></tr>
<tr><td><label for="Visible">Visible:</label></td><td>&nbsp;<input type="checkbox" name="Visible" id="Visible"'.check($inst,'Visible').'></td></tr>

View file

@ -40,25 +40,25 @@ if ($account['Level']=='guest' && !in_array($_POST['id'],$account['Insts']))
$que='UPDATE Instances SET ';
if ($account['Level']!='guest') {
if (array_key_exists('Blacklisted',$_POST) && $_POST['Blacklisted']=='on') {
$inst['Blacklisted']=1;
$sets[]='Blacklisted=1';
$res=mysqli_query($link,'SELECT * FROM Blacklist WHERE Domain="'.myesc($link,$inst['URI']).'"')
if (array_key_exists('Noxious',$_POST) && $_POST['Noxious']=='on') {
$inst['Noxious']=1;
$sets[]='Noxious=1';
$res=mysqli_query($link,'SELECT * FROM Noxious WHERE Domain="'.myesc($link,$inst['URI']).'"')
or muoribene($line.':'.__LINE__.': '.mysqli_error($link),true);
$now=microtime(true);
if (mysqli_num_rows($res)==1) {
mysqli_query($link,'UPDATE Blacklist SET ModifiedAt='.$now.' WHERE Domain="'.myesc($link,$inst['URI']).'"')
mysqli_query($link,'UPDATE Noxious SET ModifiedAt='.$now.' WHERE Domain="'.myesc($link,$inst['URI']).'"')
or muoribene($line.':'.__LINE__.': '.mysqli_error($link),true);
} elseif (mysqli_num_rows($res)==0) {
mysqli_query($link,'INSERT INTO Blacklist SET Domain="'.myesc($link,$inst['URI']).'", CreatedAt='.$now.', ModifiedAt='.$now.', Severity=1, RejectMedia=0, RejectReports=0, PrivateComment=NULL, PublicComment=NULL')
mysqli_query($link,'INSERT INTO Noxious SET Domain="'.myesc($link,$inst['URI']).'", CreatedAt='.$now.', ModifiedAt='.$now.', Severity=1, RejectMedia=0, RejectReports=0, PrivateComment=NULL, PublicComment=NULL')
or muoribene($line.':'.__LINE__.': '.mysqli_error($link),true);
} else {
muoribene($line.':'.__LINE__.': Ci sta più di una istanza con dominio=«'.$inst['URI'].'» nella tabella Blacklist.',true);
muoribene($line.':'.__LINE__.': Ci sta più di una istanza con dominio=«'.$inst['URI'].'» nella tabella Noxious.',true);
}
} else {
$inst['Blacklisted']=0;
$sets[]='Blacklisted=0';
mysqli_query($link,'DELETE FROM Blacklist WHERE DOMAIN = "'.myesc($link,$inst['URI']).'"')
$inst['Noxious']=0;
$sets[]='Noxious=0';
mysqli_query($link,'DELETE FROM Noxious WHERE DOMAIN = "'.myesc($link,$inst['URI']).'"')
or muoribene($line.':'.__LINE__.': '.mysqli_error($link),true);
}
(array_key_exists('New',$_POST) && $_POST['New']=='on') ? $sets[]='New=1' : $sets[]='New=0';

View file

@ -8,7 +8,7 @@ $cols=array(
'Instances.Good'=>array('field'=>'Instances.Good','name'=>'[Papabile]','nameEN'=>'[Good]','type'=>'bool'),
'Instances.Chosen'=>array('field'=>'Instances.Chosen','name'=>'[Scelta]','nameEN'=>'[Chosen]','type'=>'bool'),
'Instances.Visible'=>array('field'=>'Instances.Visible','name'=>'[Visibile]','nameEN'=>'[Visible]','type'=>'bool'),
'Instances.Blacklisted'=>array('field'=>'Instances.Blacklisted','name'=>'[Blacklistata]','nameEN'=>'[Blacklisted]','type'=>'bool'),
'Instances.Noxious'=>array('field'=>'Instances.Noxious','name'=>'[Nociva]','nameEN'=>'[Noxious]','type'=>'bool'),
'Instances.LastCheckOk'=>array('field'=>'Instances.LastCheckOk','name'=>'[Ha risposto allultimo check]','nameEN'=>'[Has answered on last check]','type'=>'bool'),
'Instances.Priority'=>array('field'=>'Instances.Priority','name'=>'Priorità','nameEN'=>'Priority','type'=>'int'),
'Instances.Dead'=>array('field'=>'Instances.Dead','name'=>'[“Morta”]','nameEN'=>'[“Dead”]','type'=>'bool'),

View file

@ -105,7 +105,7 @@ function dispinst(&$row,&$cols,&$link,&$dlang,&$account,$showcount,$finst,$cinst
}
}
$attr=booly(trimname(tc('Instances.Dead')).': ',$row['Dead'],false,true).N;
$attr.=booly(trimname(tc('Instances.Blacklisted')).': ',$row['Blacklisted'],false,true).N;
$attr.=booly(trimname(tc('Instances.Noxious')).': ',$row['Noxious'],false,true).N;
$attr.=booly(trimname(tc('Instances.New')).': ',$row['New'],true).N;
$attr.=booly(trimname(tc('Instances.Good')).': ',$row['Good']).N;
$attr.=booly(trimname(tc('Instances.Chosen')).': ',$row['Chosen']).N;
@ -164,18 +164,18 @@ function dispinst(&$row,&$cols,&$link,&$dlang,&$account,$showcount,$finst,$cinst
$attr.='<div class="colsectcont nully">'.t('Non disponibili','Unavailable').'</div>'.N;
}
$out.='<tr><td class="tdattr">'.$attr.'</td><td>'.N;
if ($row['Blacklisted']>0) {
$sres=mysqli_query($link,'SELECT * FROM Blacklist WHERE Domain=\''.myesc($link,$row['URI']).'\'')
if ($row['Noxious']>0) {
$sres=mysqli_query($link,'SELECT * FROM Noxious WHERE Domain=\''.myesc($link,$row['URI']).'\'')
or muoribene(mysqli_error($link),true);
if (mysqli_num_rows($sres)>0) {
$srow=mysqli_fetch_assoc($sres);
if (!is_null($srow['PublicComment']) && preg_match('/^\s*$/',$srow['PublicComment'])!==1) {
$out.='<div class="baloo">'.t('Questa istanza è blacklistata per questo motivo','This instance is blacklisted for this reason').': '.hspech($srow['PublicComment']).'</div>'.N;
$out.='<div class="baloo">'.t('Questa istanza è marcata come nociva per questo motivo','This instance is marked as noxious for this reason').': '.hspech($srow['PublicComment']).'</div>'.N;
} else {
$out.='<div class="baloo">'.t('Questa istanza è blacklistata, ma nella blacklist non è specificato il motivo','This instance is blacklisted, but the blacklist entry doesnt specify a reason').'.</div>'.N;
$out.='<div class="baloo">'.t('Questa istanza è marcata come nociva, ma nella tabella “Noxious” non è specificato il motivo','This instance is marked as noxious, but the “Noxious” table entry doesnt specify a reason').'.</div>'.N;
}
} else {
$out.='<div class="baloo">'.t('Questa istanza risulta blacklistata nella tabella delle istanze, ma nella tabella “Blacklist” non è presente: probabilmente è stata rimossa dalla tabella “Blacklist” e il crawler non lha ancora aggiornata','This instance has the “Blacklisted” flag on, but it is not present in the “Blacklist” table: prabably it has been removed from there but the crawler has not yet updated its record').'.</div>'.N;
$out.='<div class="baloo">'.t('Questa istanza è marcata come nociva nella tabella delle istanze, ma nella tabella “Noxious” non è presente: probabilmente è stata rimossa dalla tabella e il crawler non lha ancora aggiornata','This instance is marked as noxious, but it is not present in the “Noxious” table: probably it has been removed from the table but the crawler has not yet updated its record').'.</div>'.N;
}
}
$out.='<div class="baloo"><span class="field">'.tc('Instances.URI').':</span> <a href="https://'.$row['URI'].'" target="_blank">'.$row['URI'].'</a></div>'.N;

View file

@ -5,7 +5,7 @@ if ($account['Level']!='guest') {
'menu'=>array('liadd'=>null, 'href'=>null, 'title'=>'Menu', 'selected'=>false, 'submenu'=>
array(
'instances'=>array('liadd'=>null, 'href'=>'instances.php', 'title'=>'Istanze', 'selected'=>false, 'submenu'=>null),
'blacklist'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Blacklist', 'selected'=>false, 'submenu'=>null),
'noxious'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Nocive', 'selected'=>false, 'submenu'=>null),
'notifs'=>array('liadd'=>null, 'href'=>'notifs.php', 'title'=>'Notifiche', 'selected'=>false, 'submenu'=>null),
'accounts'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Accounts', 'selected'=>false, 'submenu'=>null),
'account'=>array('liadd'=>null, 'href'=>'account.php?id='.$account['ID'], 'title'=>'Il tuo account', 'selected'=>false, 'submenu'=>null),