8000 GitHub - mpuccini/morettiBot
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

mpuccini/morettiBot

Repository files navigation

Moretti Telegram Bot

Descrizione

Uno stupido bot che aiuta a tenere il conto delle bottiglie prese dalla cantina, per evitare di doverlo fare a mano.

Comandi

  • /aiuto - Mostra i comandi a disposizione, ovvero:

  • /segna - Segna le bottiglie presa dalla cantina, chiedendo prima di quale tipo di vino.

  • /controlla - Controlla le bottiglie rimanenti nella cantina.

  • /cancella - Cancella l'operazione di segnatura delle bottiglie.

  • /ciucciatori - Mostra chi ha preso più bottiglie.

  • /mischiatutto - Mostra un consiglio per la miscelazione del vino.

  • /se_semo_presi - Mostra chi ha preso cosa, ovvero quante bottiglie per ogni tipo di vino.

  • me_so_sbajato - Cancella l'ultima segnatura fatta da un utente.

Installazione

Per installare il bot è necessario avere Docker e Docker Compose installati sul proprio sistema.

  1. Clonare il repository
  2. Creare un file source.json partendo dal file source.template.json e inserire i dati relativi ai vini con relative quantità.
  3. Creare un file .env partendo dal file env.template e inserire il token del bot e ed i percorsi per:
    1. la cartella che conterrà il database
    2. il file source.json per initializzare il database
  4. Esportare il file .env come variabile d'ambiente con il comando export $(cat .env | xargs)
  5. Eseguire il comando docker-compose up -d per avviare il bot.

Informazioni aggiuntive per lo sviluppo

La versione di python utilizata è la 3.11, mentre la gestione delle dipendenze è affidata a Poetry alla versione 1.6.1.
La comunicazione con le API di Telegram è affidata alla libreria python-telegram-bot alla versione 20.6.
Il database utilizzato è un semplice sqlite3 alla versione 3.39.5, gestito tramite la libreria sqlite3 alla versione 3.12.0, inclusa nelle standard library di python.

Warning

Il database utilizza un singolo file wine.db e non ha un sistema di backup, dunque se si vuole garantire la persistenza dei dati è necessario eseguire un backup del file wine.db, previa interruzione del bot per un backup a freddo. Per sostituire il database con uno nuovo, è necessario interrompere il bot, rimuovere il file wine.db e riavviare il bot. Il docker compose prevede la creazione ed inizializzazione del database al primo avvio, grazie al file init_db.py, dunque non è necessario eseguire alcuna operazione per inizializzare il database, se non quella di creare il file source.json con i dati relativi ai vini.

TODO

  • Aggiungere un controllo per evitare che il bot venga avviato senza il file .env contenente il token del bot.
  • Aggiungere un controllo per evitare che il bot venga avviato senza il file source.json contenente i dati relativi ai vini.
  • Migliorare il logging e la gestione degli errori.
  • Aggiungere un sistema per salvare i log in un file o in un database.
  • Aggiungere un controllo sulla quantità di bottiglie rimanenti prima di segnare una bottiglia. Se non ce ne sono, avvisare l'utente.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0