Questo è il repository del nuovo bot antispam dei gruppi ufficiali della comunità di Mozilla Italia su Telegram.
Questo progetto è una beta del nuovo bot antispam per i gruppi di Mozilla Italia (su Telegram).
È sviluppato in Python e per funzionare necessita di essere avviato su un server (o su un computer).
Per segnalare errori aprire un nuovo ticket (si prega di aprire un ticket per ogni errore/idee/bug/ecc, poiché raggrupparli tutti in un unico issue è dispersivo).
Il token per accedere al bot diretto è nascosto (per ragioni ovvie).
Per poter funzionare in chat di gruppo, il bot deve essere necessariamente amministratore del gruppo
Grazie a tutti.
Per poter eseguire il codice, quindi far girare il bot, è necessario seguire i seguenti passaggi (in ordine):
Installare la libreria telepot, tramite pip (o verificare di averla già installata)
pip3 install telepot
Le frasi e il testo contenuto nei bottoni che vengono visualizzati dall'utente quando viene utilizzato il bot sono contenuti nel file frasi.json. È possibile perfino utilizzare l'HTML (vedi sotto "Tag HTML supportati")
Può essere sempre modificato, ma è necessario seguire le seguenti regole:
{{**nome_variabile**}}
{{**username**}}
in 'benvenuto', '_regolamentoletto' e '_utenteconfermato' deve essere obbligatoriamente all'inizio del messaggio/fraseI tag HTML supportati da Telegram sono:
<b></b>
: testo in grassetto<i></i>
: testo in corsivo<a href="https://..."></a>
: inserire link<a href="https://github.com/MozillaItalia/mozitaantispam_bot/blob/master/tg://user?id="></a>
: menzionare un utente sapendo il suo user_id<code></code>
: codice/monospazio<pre></pre>
: codice "preformattato"Altri tag potrebbero mandare il bot in crash
Per poter entrare nel gruppo è consigliato impostare un username Il bot si compone di 5 liste:
Inoltre sono presenti altre tre liste:
Le liste valgono per tutti i gruppi Mozilla Italia (da qui MozIta) e sono unificate, quindi un utente presente nella lista spam e già cacciato e bannato in un gruppo MozIta, appena invia qualcosa in un altro gruppo MozIta viene automaticamente bannato e cacciato anche da quel gruppo. Così come se un utente è già verificato in un gruppo lo è anche in tutti gli altri.
Le liste vengono salvate in file .json. I file generati sono i seguenti:
Inoltre ogni singolo messaggio viene salvato in un file .txt per soli scopi di debug in caso di malfunzionamenti del bot:
Il bot funziona in maniera differente in base a se si trova in un gruppo abilitato o in una chat privata. Infatti solo chi è nella AdminList può interagire, in chat privata, con il bot.
Non appena si entra in un gruppo MozIta il bot ti inserirà nella lista BlackList, quindi non potrai inviare nulla (se lo farai verrà automaticamente eliminata dal bot). Dovrai leggere il Regolamento, dopo fatto ciò passerai automaticamente alla TempList in attesa che un qualunque altro utente già verificato confermi la tua identità. Nell'attesa, finché rimarrai nella TempList, potrai inviare messaggi di solo testo (pena il passaggio nella SpamList, quindi ban ed eliminazione dai gruppi MozIta). Non appena, comunque, un utente confermerà la tua identità sarai libero di inviare messaggi di qualsiasi genere nel rispetto del Regolamento. Il bot, ugualmente, filtrerà i messaggi inviati per verificare che rispettino il Regolamento. In caso non lo fosserò, il bot automaticamente prenderà provvedimenti o, in caso il bot non identifichi il messaggio come spam (ma lo è), un nostro amministratore (membro della AdminList) provvederà al ban manuale.
Non vogliamo negare la libertà di espressione, ma bisogna avere rispetto di tutti e seguire delle regole prestabilite, che sono state pensate, scritte e approvate da molti altri precedentemente. Per il bene comune (**Fast for Good**).
Quando si preme su "Mostra Regolamento" in automatico viene inviato un messaggio (nella chat del gruppo) con delle regole basi che NON sostituiscono in alcun modo il Regolamento (che, comunque, è breve! Perciò è bene perdere 5 minuti nel leggerlo). Il bot, in automatico, inserisce il nominativo (user_id) nella TempList in attesa che un utente verificato confermi la tua identità. Puoi, comunque, scrivere messaggi di testo per farci capire che, effettivamente, se una persona in carne e ossa :). Inoltre il messaggio di benvenuto relativo all'utente viene automaticamente eliminato. Gli Admin possono anche premere su "Blocca utente" che bannerà l'utente in un singolo clic.
Il messaggio viene visualizzato solo nel primo gruppo in cui si ci unisce. È possibile (ri)mostrare il messaggio di benvenuto (anche negli altri gruppi) digitando il comando /benvenuto
.
Tutti gli utenti presenti nella WhiteList possono confermare l'identità degli utenti. Si noti che prima di confermare l'identità è necessario accertarsi che l'utente non sia uno spam:
Se non si è sicuri dell'identità dell'utente non bisogna confermare ma, piuttosto, scrivere un messaggio taggando un amministratore e spiegando la situazione. Egli procederà alle verifiche più accurate.
Ecco ciò che si può fare in chat (solo in chat: i comandi non funzionano nei gruppi).
Gestire utenti:
Inserire (manualmente) un utente nella WhiteList: utente aggiungi *USERID*
utente aggiungi 123456789
Inserire un utente nella SpamList: utente blocca *USERID*
utente blocca 123456789
Rimuovere un utente dalla SpamList -> bisognerà procedere, poi, manualmente a "sbloccarli" nei singoli gruppi (da "Gestione gruppo"): utente sblocca *USERID*
utente sblocca 12345678
Mostrare tutte le parole vietate: parola mostra
parola mostra
Aggiungere nuove parole (tutto in minuscolo): parola aggiungi *PAROLA/FRASE*
parola aggiungi parola/frase di esempio
Rimuovere delle parole (tutto in minuscolo): parola elimina *PAROLA/FRASE*
parola elimina parola/frase di esempio
Mostrare tutti i gruppi abilitati: gruppo mostra
gruppo mostra
Aggiungere un gruppo: gruppo aggiungi *USERID GRUPPO* *NOME GRUPPO*
gruppo aggiungi 123456789 Nome Gruppo di esempio
gruppo elimina *USERID*
gruppo elimina 123456789
invia messaggio *TESTO MESSAGGIO*
invia messaggio Testo messaggio di esempio
- Gestire liste:
- Mostrare utenti in WhiteList:
lista white mostra
- Mostrare utenti in SpamList:
lista spam mostra
- Mostrare utenti in BlackList:
lista black mostra
- Eliminare utenti in BlackList:
lista black elimina
- Mostrare utenti in TempList:
lista temp mostra
- Eliminare utenti in TempList:
lista temp elimina
Scaricare file log: scarica *AAAA* *MM* *GG*
scarica 2019 02 10
Gli utenti bloccati, se credono di esserlo stati (bloccati) per errore, possono inviare una segnalazione tramite chat privata dal bot (code>@mozita_antispam_bot</code):
/start
Segnala il possibile errore
del messaggio visualizzatoGli amministratori effettueranno tutte le dovute verifiche. Il messaggio di segnalazione può essere inviato una singola volta.
In caso ci fosse stato un errore, l’utente interessato verrà sbloccato e potrà unirsi nuovamente ai gruppi di Mozilla Italia. In caso contrario, invece, rimarrà nello stato di Bloccato/Utente spam e, quindi, non potrà entrare più nei gruppi comunitari.
Elenco delle librerie utilizzate nel codice (Python):