bot:s-uzzbot

Questa è una vecchia versione del documento!


Logo di Samus Aran (attuale) in edizione Deal With It

Samus Aran

Samus Aran è un Bot basato su uzzbot (il quale era già basato su telegram-bot), scritto in Lua con modifiche da parte di Casa con lo scopo di amministrare gruppi e supergruppi.

Samus usa, come altri bot, un sistema di autorizzazioni con funzioni e accessi diversificati.

Alla base di tutto c'è l'utente comune, l'user guest, a lui sono accessibili solo i comandi riservati a tutti, non può svolgere funzioni amministrative e può essere ulteriormente limitato in un gruppo con il comando !whitelist modonly enable.

L'utente che aggiunge samus diventa moderatore

È la figura amministrativa base, viene automaticamente nominato in questa lista la persona che invita Samus nel gruppo. È valido solo nel gruppo di appartenenza, ha accesso a tutti i comandi amministrativi e può nominare altri moderatori con !promote <@username> o #promote da reply.

Può essere nominato solo da un sudo, può accedere ad alcune funzioni riservate ed è moderatore di qualsiasi gruppo.

I sudo sono gli utenti con i privilegi massimi, possono accedere ad ogni funzionalità. Un sudo non può nominare altri sudo, per diventare sudo bisogna aggiungere il proprio ID manualmente nella configurazione del bot stesso.

Samus è in grado di eseguire vari comandi, sia di moderazione/amministrazione che, anche se meno usati, di svago/utilità.

Qui sono raccolti tutti i plugin a cui Samus ha accesso:

Con il comando !9gag è possibile ricevere un immagine casuale dal portale 9GAG.

ComandoDescrizionePrivilegi
!9gag Invia il proprio ID Tutti

Attivazione dell'antiflood nel gruppo

Permette di rimuovere automaticamente gli utenti che superano un certo numero di messaggi in un tempo stabilito.

Trigger dell'antiflood

Appena aggiunto il bot al gruppo l'opzione è disabilitata, la si può abilitare con !anti-flood enable e di fabbrica è settato a un limite di 5 messaggi in 5 secondi. Il limite di messaggi può essere modificato con !antiflood maxmsg <num_msg> mentre il tempo può essere modificato con !antiflood timeframe <seconds>, per vedere la configurazione utilizzata si può usare !antiflood status. Si possono aggiungere eccezioni, ovvero utenti che possono sforare il limite di flood senza conseguenze, con il comando !antiflood addexcept/delexcept <user_id> oppure con #addexcept e #delexcept via reply all utente interessato.

ComandoDescrizionePrivilegi
!antiflood enable/disable Abilita/Disabilita l' anti-flood Moderatore o sup.
!antiflood addexcept/delexcept <user_id> Aggiungere/Rimuovere un utente dalle eccezioni. Moderatore o sup.
!antiflood status Stampa la configurazione dell anti-flood (mes/temp) Moderatore o sup.
!antiflood maxmsg <num_msg> Setta il numero di messaggi massimi prima di far scattare l'anti-flood Moderatore o sup.
!antiflood timeframe <seconds> Setta il tempo massimo prima di far scattare l'anti-flood Moderatore o sup.
#addexcept Aggiungi utente alle eccezioni (Tramite Reply) Moderatore o sup.
#delexcept Rimuovi utente dalle eccezioni (Tramite Reply) Moderatore o sup.

Attivazione dell antispam nel gruppo

Permette di rimuovere automaticamente tutti gli utenti che condividono determinati link, nei supergruppi elimina anche il messaggio di spam, i collegamenti rimossi sono quelli: Telegram (privati e pubblici), adf.ly e sh.st.

BAN per spam con Samus, il link viene eliminato

Appena aggiunto il bot al gruppo l' opzione è disabilitata, la si può abilitare con !antispam enable. La lista nera dei link, non può essere modificata, ma si possono aggiungere eccezioni, ovvero utenti che possono condividere link senza conseguenze, con il comando !antispam addexcept/delexcept <user_id> oppure con #addspamexcept e #delspamexcept via reply all utente interessato.

ComandoDescrizionePrivilegi
!antispam enable/disable Abilita/Disabilita l' anti-spam Moderatore o sup.
!antispam addexcept/delexcept <user_id> Aggiungere/Rimuovere un utente dalle eccezioni. Moderatore o sup.
#addspamexcept Aggiungi utente alle eccezioni (tramite reply) Moderatore o sup.
#delspamexcept Rimuovi utente dalle eccezioni (tramite reply) Moderatore o sup.

Kick tramite comando

Ban tramite comando

Unban tramite comando

Ban tramite reply

Il plugin banhammer è quello che si occupa dell'amministrazione. I comandi base sono: !kickme che serve a farsi bannare dal gruppo ed è l'unico comando utilizzabile da tutti.

!kick <@user/ID> che serve a cacciare un utente tramite ID o UserName, si può utilizzare anche via reply con #kick, nei supergruppi il comando kick equivale al comando ban.

!ban user <@user/ID> come il comando kick, serve per rimuovere un utente, inoltre rende il kick permanente (perciò l'utente se rientra viene automaticamente rimosso), la versione reply del comando è #ban. Per rimuovere il ban si può usare !ban delete <ID> oppure da reply #unban.

!superban user <@user/ID> come il comando ban, ma è valido su tutti i gruppi dove samus è admin, il comando è riservato agli amministratori del bot, attualmente Casa e Len.

È possibile disabilitare i superban in un gruppo, per permettere anche alle persone bannate globalmente di entrare. Il comando per effettuare tale operazione è !superban <enable>/<disable>

Infine abbiamo il comando !whitelist modonly <enable/disable> che permette di bloccare/sbloccare tutti i comandi di samus agli utenti normali, perciò rende i comandi pubblici usabili solo ai moderatori o sup.

ComandoDescrizionePrivilegi
!kickme Esci dal gruppo Tutti
!whitelist modonly enable Abilita il blocco all'uso dei comandi ai non mod Mod o sup.
!whitelist modonly disable Disabilita il blocco all'uso dei comandi ai non mod Mod o sup.
!kick <@user/ID> Caccia un utente Mod o sup.
#kick Caccia un utente (via reply) Mod o sup.
!ban user <@user/ID> Banna un utente Mod o sup.
!ban delete <@user/ID> Sbanna un utente Mod o sup.
#ban Banna un utente (via reply) Mod o sup.
#unban Sbanna un utente (via reply) Mod o sup.
!superban user <@user/ID> SuperBanna un utente Admin o sup.
!superban delete <ID> SuperSbanna un utente Admin o sup.
!superban <enable>/<disable> Abilita/Disabilita i SuperBan su un gruppo Mod o sup.
#superban SuperBanna un utente (via reply) Admin o sup.

Uno dei plugin NSFW, permette di ricevere immagini di seni con !boobs e immagini di sederi con !butts.

ComandoDescrizionePrivilegi
!boobs Invia foto di seni (NSFW) Tutti
!butts Invia foto di sederi (NSFW) Tutti

Sulla strada dei plugin NSFW permette di ricevere un immagine casuale dal sito Danbooru con l'omonimo comando !danbooru

Comando Descrizione
!danbooru Invia un immagine casuale da Danbooru (NSFW) Tutti
!danboorud Invia un immagine casuale tra le più viste del giorno (NSFW) Tutti
!danbooruw Invia un immagine casuale tra le più viste della settimana (NSFW) Tutti
!danboorum Invia un immagine casuale tra le più viste del mese (NSFW) Tutti

Permette di eliminare un messaggio via reply sui supergruppi, tramite il comando #delmsg.

ComandoDescrizionePrivilegi
#delmsg Elimina un messaggio (via reply) (solo sui supergruppi) Mod o sup.

Comando eurusd

Comunica il cambio euro/dollaro tramite il comando !eurusd

ComandoDescrizionePrivilegi
!eurusd Comunica il cambio euro/dollaro Tutti
!eurusd <cifra> <EUR/USD> Effettua il cambio da euro a dollari e viceversa Tutti

groupmanager

Settare e vedere la descrizione

Bloccare il nome

Il plugin groupmanager come quello banhammer si occupa dell'amministrazione. I comandi base sono:

!creategroup <group_name> che permette di creare nuovi gruppi, ma è riservato agli amministratori.

!setabout <description> e !about che permettono rispettivamente di settare e vedere la descrizione del gruppo. I comandi !setrules <rules> e !rules hanno le stesse funzioni dei comandi precedenti solo con le regole.

!setname <new name> e !setimage permettono rispettivamente di modificare il nome o l'immagine del gruppo.

!group <lock|unlock> <name|photo|member> permette di bloccare il nome, l'immagine o i membri, in quest'ultimo caso i nuovi utenti verranno rimossi.

ComandoDescrizionePrivilegi
!creategroup <group_name> Crea un nuovo gruppo Admin o sup.
!setabout <description> Setta la descrizione Mod o sup.
!about Mostra la descrizione Tutti
!setrules <rules> Setta le regole Tutti
!rules Mostra le regole Tutti
!setname <new_name> Cambia il nome del gruppo Mod o sup.
!setphoto Cambia foto del gruppo Mod o sup.
!group lock/unlock name Blocca/Sblocca il nome del gruppo Mod o sup.
!group lock/unlock photo Blocca/Sblocca l'immagine del gruppo Mod o sup.
!group lock/unlock member Blocca/Sblocca il numero degli utenti Mod o sup.

Salutare una persona con samus

Questo comando molto semplice permette di far salutare qualcuno al bot tramite il comando say hello to <name>

ComandoDescrizionePrivilegi
say hello to <name> Saluta una persona Tutti

È il comando aiuto, elenca tutti i plugin con !help e con !help all mostra anche i relativi comandi seguiti da una descrizione in inglese.

ComandoDescrizionePrivilegi
!help Mostra la lista dei comandi Tutti
!help all Mostri i comandi di ogni plugin (con descrizione) Tutti
!help <plugin name> Mostra i comandi di un singolo plugin (con descrizione) Tutti
!help <number> Mostra i comandi di un singolo plugin (con descrizione) Tutti

Glorifica l'Hydra

Questi comandi sono riservati ai fedeli dell hydra, con !hailhydra è possibile glorificare l'hydra, con !ruleshydra è possibile vedere le regole dei fedeli.

ComandoDescrizionePrivilegi
!hailhydra Glorifica l'hydra Tutti
!ruleshydra Mostra i 10 comandamenti dei fedeli Tutti

ID tramite comando

ID tramite reply

Stampa gli ID degli utenti nel gruppo

È possibile riceve l'ID di un utente, anche non presente nel gruppo usando il comando !id <@username> oppure usando il comando #id in risposta a un messaggio inviato dall'utente interessato. Con !id è possibile ricevere le proprie informazioni.

Con !ids chat è possibile stampare tutti gli ID degli utenti in un gruppo, anche in privato se si è almeno moderatori del gruppo/supergruppo in questione. È necessario avere l'ID prima di utilizzare quest'ultima funzione, lo si può ottenere con !id, inviato nel gruppo del quale si vuole la lista.

ComandoDescrizionePrivilegi
!id Invia il proprio ID Tutti
!id <@username> Invia l'ID dell'utente teamite username Tutti
#id In risposta al messaggio dell'utente interessato da l'ID Tutti
!ids chat Stampa gli ID degli utenti nel gruppo Tutti
!ids chat channel#id<id del supergruppo> Stampa gli ID degli utenti nel supergruppo (anche in privato) Mod o sup.
!ids chat chat#id<id del gruppo> Stampa gli ID degli utenti nel gruppo (anche in privato) Mod o sup.

Con il comando !imdb <movie> è possibile cercare film sul noto database IMDB

Comando Descrizione
!imdb <movie> Cerca un film su IMDB Tutti

Con il comando !join <invite link> gli amministratori del bot possono far joinare il bot in un gruppo a partire dal link, questo comando è utilizzabile solo con i link privati

Comando Descrizione
!join <invite link> Aggiunge Samus a un gruppo tramite link Admin o sup.

Vedi le informazioni di geolocalizzazione di una città

Con il comando !loc <città> è possibile ricevere un link da google maps con le cordinate della città e uno screenshoot dello stesso.

Comando Descrizione
!loc <città> Invia le informazioni di geolocalizzazione di una città

Questo plugin permette di creare meme a partire da una lista di circa 1134 immagini, la lista può essere esplorata con il comando !meme list che vi darà come output un link hastebin, è possibile cercare l'immagine desiderata manualmente (tramite il sito) oppure con il comando !meme search <parola chiave>.

Una volta scelta l'immagine che fà più per noi, si usa il comando !meme <parola chiave> - <testo superiore> - <testo inferiore> o con !meme <parola chiave> “<testo superiore>” “<testo inferiore>”

Comando Descrizione
!meme search <parola chiave> Cerca un immagine base per meme Tutti
!meme list Mostra la lista delle immagini base Tutti
!meme listall Mostra la lista di tutti i meme Admin o sup.
!meme <parola chiave> - <testo superiore> - <testo inferiore> Genera un meme con la pic e il testo richiesto Tutti
!meme <parola chiave> “<testo superiore>” “<testo inferiore>” Genera un meme con la pic e il testo richiesto Tutti

Questo plugin si occupa di alcune impostazioni di moderazione e di aggiungere/rimuovere i moderatori.

Samus una volta aggiunto esegue un modadd e nomina moderatore l'utente che l'ha aggiunto

Con !promote <@username> è possibile aggiungere un nuovo moderatore mentre con !demote <@username> per demotarne uno. Si possono usare via reply anche #promote e #demote. Con !modlist viene mostrata la lista dei moderatori.

Con !modadd è possibile aggiungere il gruppo tra i moderati, cosa che accade automaticamente appena aggiunta samsus, mentre con !modrem si può rimuovere il gruppo dai moderati.

ComandoDescrizionePrivilegi
!promote <@username> Aggiungi un moderatore Mod o sup.
!demote <@username> Rimuovi un moderatore Mod o sup.
#promote Aggiungi un moderatore (via reply) Mod o sup.
#demote Rimuovi un moderatore (via reply) Mod o sup.
!modlist Mostra la lista dei moderatori Tutti
!modadd Aggiunge un gruppo alla moderazione Mod o sup.
!modrem Rimuove un gruppo dalla moderazione Mod o sup.

Esempio d'uso del comando music

Con il comando !music <nome> è possibile ricevere i link per il download di una canzone.

ComandoDescrizionePrivilegi
!music <nome> Invia i link per il download della canzone Tutti

Questo plugin permette nei supergruppi di mutare gli utenti, eliminando tutti i loro nuovi messaggi.

Con il comando !mute user <@username/ID> è possibile mutare un utente invece con !mute delete <@username/ID> per smutarne uno, in alternativa si possono usare anche #mute e #unmute da reply.

Infine con il comando !mute all è possibile mutare tutti esclusi i moderatori e con il comando !mute undo smutare tutti.

ComandoDescrizionePrivilegi
!mute user <@username/id> Muta un utente Mod o sup.
!mute delete <@username/id> Smuta un utente Mod o sup.
#mute Muta un utente (via reply) Mod o sup.
#unmute Smuta un utente (via reply) Mod o suo.
!mute all Muta tutti (esclusi mod o sup.) Mod o sup.
!mute undo Smuta tutti Mod o sup.

Con il comando !plugins enable <plugin> chat o !plugins disable <plugin> chat è possibile abilitare o disabilitare un determinato plugin nel gruppo.

ComandoDescrizionePrivilegi
!plugins disable <plugin> chat Disabilita un plugin nel gruppo Mod o sup.
!plugins enable <plugin> chat Abilita un plugin nel gruppo Mod o sup.

Samus è anche un pokedex

Con !pokedex <name/id> con nome o id del pokemon, come output vi darà le informazioni di quel pokemon, come il pokedex.

ComandoDescrizionePrivilegi
!pokedex <name/id> Ricevi le informazioni su un pokemon Tutti

Tira i dadi con Samus

Con !roll <numero di dadi>d<numero di facce> darà un numero casuale generato lanciando degli ipotetici dadi. Un po' come fa Dice Bot.

ComandoDescrizionePrivilegi
!roll <numero di dadi>d<numero di facce> Tira un dado virtuale Tutti

In scrittura…

Il comando !sos restituisce il link del gruppo di supporto.

Comando Descrizione
!sos Restituisce il link del gruppo di supporto Tutti

Statistiche made in Samus

Con !stats permette di vedere una statistica minimale, ordinata in base al numero di messaggi scritti dagli utenti.

È possibile eseguire anche il comando da remoto con l'ID del gruppo con !stats chat <id>.

Infine !stats bot mostra le statistiche globali, ma è accessibile solo al sudo.

ComandoDescrizionePrivilegi
!stats Mostra le statistiche del gruppo Tutti
!stats chat <id> Mostra le statistiche del gruppo da remoto Mod o sup.
!stats bot Mostra le statistiche del bot Sudo

Da LaTeX a immagine

Con il comando !tex <equation> è possibile convertire un equazione LaTeX in immagine.

ComandoDescrizionePrivilegi
!tex <equation> Converte un equazione LaTeX in immagine Tutti

Che ore sono li?

Mostra la data e ora del fuso orario scelto, con il comando !time <area>

ComandoDescrizionePrivilegi
!time <area> Mostra la data e ora del fuso orario scelto Tutti

Tramite il comando !ud <term> è possibile ottenere la descrizione del termine <term> da Urban Dictionary

ComandoDescrizione
!ud <term> Mostra la descrizione del temine su Urban Dictionary Tutti

Il comando !version mostra la versione del bot e alcune informazioni riguardo licenza e sorgenti.

ComandoDescrizionePrivilegi
!version Mostra la versione del bot Tutti

Il meteo direttamente da Samus

Con !weather <city> è possibile vedere il meteo in una città.

ComandoDescrizione
!weather <city> Vedi il meteo di una città Tutti

Esegui lo screenshot di una pagina web

Con il comando !webshot <URL> è possibile avere lo screenshot di un determinato sito.

ComandoDescrizionePrivilegi
!webshot <URL> Esegui lo screenshot di una pagina web Tutti

Con il comando !why <@username>/<id> o #why via reply si può vedere lo stato di un utente, che può essere:

  • Utente non bannato o superbannato
  • Utente superbannato, puoi disattivare i superban con !superban disable
  • Utente bannato (dal gruppo), puoi sbannarlo con !ban delete <ID>
ComandoDescrizionePrivilegi
!why <@username>/<id> Vedi lo stato di un utente Tutti
#why Vedi lo stato di un utente (by reply) Tutti

Eseguire ricerche con Samus

Con !wiki <text> è possibile leggere un estratto di Wikipedia in lingua originale, con !wiki<lang> <text> è possibile leggere estratti da Wikipedia nella lingua desiderata. Con !wiki search <text> è possibile cercare articoli su Wikipedia, con !wiki<lang> search <text> si può cercare su Wikipedia nella lingua desiderata.

ComandoDescrizionePrivilegi
!wiki <text> Ottieni un estratto da Wikipedia in EN Tutti
!wiki<lang> <text> Ottieni un estratto da Wikipedia nella lingua desiderata Tutti
!wiki search <text> Effettua una ricerca su Wikipedia EN Tutti
!wiki<lang> search <text> Effettua una ricerca su Wikipedia nella lingua desiderata Tutti

Con il comando !xkcd si può ricevere un immagine casuale dal portale xkcd. Se si ha l'ID dell immagine desiderata si può usare !xkcd <id>.

Comando Descrizione
!xkcd Ottieni un immagine casuale dal portale xkcd Tutti
!xkcd <id> Ottieni un immagine precisa da xkcd Tutti

Samus Aran usa tg-cli per connettersi a telegram, questo la rende identica a un normale utente, ma non la rende esente da bug o problemi, la maggior parte dovuti allo stato di abbandono in cui si presentano i sorgenti di tg-cli stesso.

Problema ricorrente degli utenti è la segnalazione per spam anche Samus non ne è immune, infatti può essere spambannata dai gruppi pubblici. Questo significa che Samus non potrebbe scrivere sui gruppi pubblici, ma neanche bannare, cambiare il titolo e altro.

Per ovviare a questo problema si può usare la versione API.

Samus non riceve i messaggi da gruppi con più di 200 membri in quanto, per risparmiare banda, Telegram non recapita più i messaggi in tempo reale e di conseguenza non risponde ad alcun comando.

Per ovviare al problema si poteva aggiungere al gruppo con Samus, oldbirdbot un bot che consegna i messaggi a Samus, questo perché i bot API ricevono i messaggi in qualunque caso. Con l'introduzione della versione API il bot è stato abbandonato.

Ad aprile inizia lo sviluppo di una versione API di Samus, a fine giugno quasi tutti i comandi sono funzionanti e il bot viene diciamo dichiarato idoneo all'uso e quindi fuori dalla fase beta. Non ci sono grandi differenze se non che questa versione non soffre del bug della consegna dei messaggi e che alcuni comandi non sono funzionanti causa limitazioni imposte ai bot API.

Un clone di samus

Con il rilascio dei sorgenti sono ora in funzione diversi cloni e fork del codice originale. Gli stessi vengono utilizzati da Group Help e Control Panel Group per effettuare l'effettiva eliminazione dei messaggi con il loro complementare MTProto GroupHelpMaster ControlPanelGroupSupport. I sorgenti sono disponibili su github

I cloni attualmente funzionanti di Samus Aran sono: Akuma95 e Akuma95 (Api)

  • bot/s-uzzbot.1595381136.txt.gz
  • Ultima modifica: 15/03/2023 08:38
  • (modifica esterna)