MozillaItalia / mozitaantispam_bot

Il bot Telegram per evitare gli utenti "spam" per i gruppi di Mozilla Italia e regolamento
Creative Commons Zero v1.0 Universal
6 stars 7 forks source link
hacktoberfest

MozIta Antispam Bot

Questo è il repository del nuovo bot antispam dei gruppi ufficiali della comunità di Mozilla Italia su Telegram.

Informazioni utili

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.

Installazione ed esecuzione bot

Per poter eseguire il codice, quindi far girare il bot, è necessario seguire i seguenti passaggi (in ordine):

Frasi visualizzate e contenuto bottoni

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:

Tag HTML Supportati

I tag HTML supportati da Telegram sono:

Altri tag potrebbero mandare il bot in crash

Funzionamento del bot

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.

Primi passi

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**).

Lettura regolamento

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.

Conferma identità

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.

Privilegi amministratori (AdminList)

Ecco ciò che si può fare in chat (solo in chat: i comandi non funzionano nei gruppi).

Per gli utenti bloccati

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):

  1. Digitare /start
  2. Premere sul bottone Segnala il possibile errore del messaggio visualizzato

Gli 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.

Librerie utilizzate

Elenco delle librerie utilizzate nel codice (Python):