Code Monkey home page Code Monkey logo

unitobot's People

Contributors

lory9894 avatar stefa168 avatar thetipo01 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

lory9894

unitobot's Issues

Segnalazione link inattivo

possibilità di segnalare al bot un link di un gruppo non più funzionante, in modo da avere una piattaforma più "organizzata"

/dead [nomegruppo o sigla]

Messaggi broadcast

Creare funzione per mandare messaggi broadcast a diverse liste di gruppi

  • Tutti
  • Triennale
  • Altri?

@jackchevalley se non ricordo male potrebbe già avere una cosa fatta o solo da riadattare

Sistema base di autorizzazioni

Assumendo che nel DB ci sia una relazione (id_utente, ruolo), dove ruolo è una stringa. Creare una funzione che data una coppia (id_utente, ruolo_atteso) restituisce true se l'utente ha ruolo_atteso, false altrimenti.
Questa funzione sarà usata all'interno di altre funzioni per fare un check delle autorizzazioni prima di eseguirle.

Funzioni di amministrazione

Stefano scrive:

  • Qualche feature per la moderazione dei gruppi, tipo /segnala
  • Connessione ad un canale o gruppo dove il bot invia stacktrace, errori e segnalazioni
  • Controllo dei gruppi per capire se l'owner è uscito, per poterlo ripescare e recuperare il gruppo abbandonato
  • Comandi per dare "badge" a certi individui, tipo i Rappresentanti (solo se il bot ha eletto ad admin un utente può cambiarne i permessi e gli attributi)
  • /mute {opzionale:1m, 30s, 4d etc} oppure fino a /unmute se nulla è specificato
  • /ban (sintassi uguale) + /unban
  • /kick

E con il prefisso fed per essere effettivo in tutti i gruppi

  • /fedmute /fedban /fedkick

Gruppo log

E' stata menzionata (#7) la possibliità di avere un gruppo per ricevere notifiche sul bot.

Proposte

  • Stato del bot (avviato, spegnimento)
  • Errori
  • Crash
  • Segnalazioni degli studenti varie (vedi: #6 #7 )

Reminder Tasse

Si pensava di farlo una settimana prima, 4 giorni prima ed il giorno prima

Comandi per contattare gruppi/persone specifici

Esempio: /rappresentanti <testo> (o @rappresentanti <testo>) che invia un messaggio al gruppo telegram (privato) dei rappresentanti (id del gruppo preso da DB)

  • Definire per quali gruppi/persone farlo
  • Possibilità di creare un sistema dinamico per la creazione di questa tipologia di comandi a runtime direttamente dal bot
    • Complesso, priorità bassa per questo punto

Remove hardcoded db URL

ho notato che l'URL del db (questo per capirci)

engine = create_engine(sqlalchemy.URL.create(
        "postgresql",
        username="bot",
        # Adding the parsing already in preparation for the settings file.
        password=urllib.parse.quote_plus("bot"),
        host="localhost",
        database="bot"
    ))

Ha dentro qualche parametro che non dovrebbe essere harcoded.

A parte password, username e database, quello più critico è host.
ad esempio se, anche solo, volessimo deployare su docker l'host cambia ed è scomodo andare a modificare i parametri hardcoded

Si può pensare di andare a specificare tali parametri tramite environment variables, se poi quando il codice viene eseguito queste non sono state specificate allora nel codice stesso vengono impostate come sopra (username bot, host localhost etc...)

questo anche nell'ottica modulare di slegarsi dal db. se uno non volesse usare postgres ad esempio basta che cambi una variabile d'ambiente ed ha fatto

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.