Releases: AFLdiscord/AFL-Bot
Versione 1.2
logging e incapsulamento di afler e archivio
Miglioramenti vari
- incapsulamento di afler e archivio (#44 e #47)
Questo cambiamento consente di effettuare più agevolmente le operazioni sull'archivio e permette di avere una gestione centralizzata sui campi di ogni enrty invece di avere stringhe in json sparse per il codice. - aggiunto logging (#43)
Adesso gli eventi più rilevanti sono loggati nel canale di log del server così da tenere traccia di entrate/uscite, warn, messaggi cancellati etc
Changelog completo: v1.1.1...v1.2
Enjoy
Versione 1.1
funzioni di utilità per la gestione remota del bot
Nuove features
-
comando pull (#42)
Pull del codice aggiornato dal repository tramite comando da discord. Questo comando causa l'esecuzione digit pull
sull macchina remota (sfruttando la libreria GitPython) e invia l'output in un messaggio. Inoltre invoca automaticamente la ricarica delle cog.
Sintassi:<pull
-
controllo coerenza archivio (#41)
Ora l'elenco membri viene controllato a ogni connessione o resume di sessione in modo da garantirne la coerenza (es. se qualcuno esce dal server mentre il bot è offline appena quest'ultimo si riconnette elimina l'utente dall'archivio.
Miglioramenti vari
- fixato un problema di incoerenza tra i tipi di dato caricati da file e quelli tenuti in memoria (#40)
- possibile aggiornare il messaggio di stato del bot (sta giocando a...) senza riavviare con il comando
<updatestatus
- uniformato lo stile dei commenti
Enjoy
Versione 1.0
Ottava release ufficiale del bot
Nuove features
-
configurazione (#32)
- setthresholds
Comando per impostare i vari parametri del bot (soglia messaggi per l'attivo, durata attivo, etc). In questo modo non è più necessario agire manualmente sul file di configurazione - addactive
Aggiunge un canale all'elenco dei canali conteggiati per il ruolo attivo.
- setthresholds
-
autorimozione dei canali dall'elenco attivo se vengono cancellati (#39)
Miglioramenti vari
- fix pulizia link amazon (#36)
- migliorato output warncount per renderlo più leggibile (#33)
- fix pulizia dei link amazon (#36)
- impedire nickname duplicati (#38)
- aggiornata versione libreria a 1.7.3
Full Changelog: v0.7...v1.0
Note
discord.py non è più supportata e smetterà di funzionare ad aprile 2022 quando discord renderà obbligatori gli slash commands. Stiamo valutando librerie alternative, quella più promettente per ora è pycord. Ne discuteremo sul server nel canale dedicato allo sviluppo.
Enjoy
Versione 0.7
Settima release ufficiale del bot.
Nuove features
-
bio
Ogni membro può impostare una bio personalizzata visibile tramite il comando bio
. Il limite è di 70 caratteri.
-
help automatico
In caso di errori di sintassi nell'utilizzo dei comandi, il bot manderà automaticamente la lista dei comandi utilizzabili dall'utente. Per ora il messaggio è mandato nel canale in cui si sta scrivendo, se creerà problemi potremmo spostarlo in privato (anche se sarebbe preferibile non farlo, è fastidioso).
Miglioramenti vari
- helper per gestire l'archivio e fare check di coerenza in caso di modifche manuali
- fix a un bug del comando
resetnick
che ne impediva l'utilizzo - risoluzione conflitti prefisso
<
con funzioni di discord (menzioni, emoji, etc) - aggiunto controllo sulla lunghezza del nickname seguendo le limitazioni di discord
- caching dell'archivio per evitare letture multiple, ora viene letto solo all'avvio e aggiornato a ogni scrittura
Enjoy
Versione 0.6
Sesta versione ufficiale del bot.
Nuove features
-
ammissione automatica membri
Automatizzata l'accettazione dei nuovi membri dopo che si sono presentati nel canale apposito in modo da evitare di attendere la revisione manuale dal parte di un moderatore. Questo semplifica il processo di ammissione, annunciando in automatico il nuovo membro in un canale di benvenuto in cui può aggiungere altre informazioni.
-
pulizia link
Introdotta una funzione di pulizia/accorciamento dei link per limitare la lunghezza dei link e rimuovere le parti non necessarie. Per ora supporta solo link a prodotti amazon, potrebbe essere estesa in futuro secondo necessità.
Il comportamento è il seguente:
quando un utente manda un link il bot controlla se può essere accorciato. Nel caso specifico dei link amazon, rimuove tutta la parte dopo il codice prodotto. Il messaggio originale dell'utente viene rimosso e il bot reinvia il link pulito con il nome di chi lo ha mandato, ovvero
link da Skylake:
<link pulito>
-
cambio nickname
È stato deciso di dare la possibilità di cambiare nickname ogni 30 giorni. Per questo è stato introdotto il comando setnick
permettendo al bot di gestire queso cambiamento senza dare i permessi di farlo ai singoli membri. Il nickname è ora salvato nell'archivio e viene resettato in automatico in caso di cambiamenti.
Sintassi
<setnick nick # imposta nick come nickname
<setnick due nick # si possono usare anche più parole
Miglioramenti vari
- semplificata installazione dipendenze usando il file requirements.txt
- uniformati i delimitatori di stringa nell'intero progetto
- rivista struttura cartelle
Inoltre da un po' di tempo tutto il codice nel repo viene analizzato automaticamente tramite CodeQL usando le GitHub Actions a ogni modifica. In futuro vedremo come gestire meglio la parte di workflow, magari aggiungendo un linter, per ora resta così.
Enjoy
Versione 0.5
Quinta versione ufficiale del bot. Da questa versione si esce dallo stato di pre-release.
Nuove features
-
gestione delle proposte
Da questa versione il bot tiene traccia di cosa viene scritto nel canale "proposte". Per ogni proposta si salva il numero totale di aventi diritto al voto e la soglia per stabilire se è stata approvata o no. Il controllo sul raggiungimento della soglia è fatto ogni 24 dalla stessa task che controlla il conteggio dei messaggi per il ruolo attivo.
Possono verificarsi due situazioni:
. la proposta è scaduta (passati 3 giorni) --> viene rimossa dal bot
. la proposta è passata (voti a favore >= soglia) --> cancella la proposta e manda un avviso a riguardo riportando il testo di questa
dettagli tecnici:
le proposte sono salvate in un apposito file "proposte.json" sotto forma di dizionario. Ogni entry è strutturata come segue (vedi discussione qua e qua):
"id_proposta" {
"timestamp": timestamp della proposta con precisione fino al giorno,
"total_voters": totale degli aventi diritto al voto al momento di prensentazione,
"threshold": soglia di voti a favore affinchè la proposta passi,
"passed": booleano per indicare se è passata o meno,
"yes": numero di voti a favore,
"no": numero di voti contrari,
"content": il testo della proposta
}
-
comando printconfig
Stampa della configurazione del bot direttamente in chat, utile per consultarla mentre si fanno prove col bot.
Sintassi:
<printconfig #stampa la configurazione
-
comando coglist
Stampa l'elenco di tutte le cog attualmente caricate
Sintassi:
<coglist #stampa elenco cog
-
comandi addcog e removecog
Permettono di aggiungere/rimuovere nuove cog a runtime e salvarle/rimuoverle dall'elenco di cog da caricare all'avvio.
Sintassi:
<addcog nome_cog #aggiunge nome_cog al bot e al file extensions.json
<addcog nome_cog altra_cog #più cogs separate da spazio
<removecog nome_cog #rimuove nome_cog dal bot e dal file extensions.json
<removecog nome_cog altra_cog #più cogs separate da spazio
Miglioramenti vari
- non è più necessario riavviare il bot per modificare il comportamento dei comandi o delle risposte agli eventi
- possibilità di aggiungere/rimuovere interamente nuove cog a runtime
- aggiornata la documentazione delle funzioni del bot e modificati nomi file
- type hinting per le funzioni
Enjoy
Versione 0.4
Quarta versione ufficiale del bot.
Nuove features
-
possibilità di ricarica delle cogs
È adesso possibile ricaricare tutto il codice presente nelle cogs senza dover riavviare il bot consentendo così di applicare correzioni senza downtime. Per usare questo comando occorre essere mod.
Sintassi:
<reload #ricarica tutte le estensioni
<reload ModerationCog #ricarica solo ModerationCog
<reload ModerationCog UtilityCog #più cogs separate da spazi
-
aggiornamento config
Ricarica di tutti i parametri di configurazione del bot tramite comando. Per esempio può essere utile quando viene aggiunto un nuovo canale specifico per aggiungerlo subito al conteggio dei messaggi senza dover riavviare. Comando riservato ai mod
<updateconfig #ricarica tutti i parametri di configurazione
-
versione bot
Il bot ora mostra il numero di versione nello stato di discord
Miglioramenti vari
- fixato un bug di azzeramento del contatore messaggi in caso di riavvio a metà giornata
- spostamento eventi in una cog apposita
- logging degli eventi della libreria (solo stampe per ora, file di log vedremo)
- fixato bug che causava crash del bot se veniva disconnesso per periodi prolungati
- aggiustato il conteggio dei messaggi per l'attivo per rispecchiare le intenzioni originali
- aggiunta licenza e migliorate istruzioni di installazione
Enjoy
Versione 0.3
Terza versione ufficiale del bot.
- aggiunto stato del bot (Sta giocando a...)
- migliorato utilizzo del comando warn
Questa volta le modifiche maggiori riguardano l'architettura interna del bot. Con questa versione passiamo da un unico file python contenente tutto il codice a una divisione in moduli sfruttando la funzionalità Cogs della libreria. Valuteremo se apportare cambiamenti alla suddivisione nelle prossime release in caso ci siano problemi, seguiranno sicuramente fix e miglioramenti nei prossimi giorni.
Enjoy
Versione 0.2
Seconda release ufficiale del bot con notevoli miglioramenti riguardo alla stabilità e affidabilità del bot.
Nuove features:
- comando status per mostrare statistiche riguardo a un membro del server (messaggi settimanali, attivo, violazioni)
- comando per mostrare l'avatar di un membro
- comando per mostrare la blacklist attuale
- controllo sull'uscita/ban di membri per rimuoverli dal conteggio dei messaggi
- migliorato comando warncount (ora riservato ai mod, i membri possono usare status)
Numerosi bug fix.
Enjoy
Versione 0.1
Versione iniziale del bot da lanciare nel server per testarne stabilità e robustezza su un periodo di prolungato di tempo