2.2.15 • Published 2 years ago

node-uni-bot v2.2.15

Weekly downloads
-
License
SEE LICENSE IN LI...
Repository
github
Last release
2 years ago

Unimore-Bot

Bot sviluppato in Node.js che permette la prenotazione e il successivo invio dello screenshot di quest'ultima tramite un bot di telegram

Indice

Prequisiti

Node.js

Node.js è un runtime system open source, compatibile con MacOS, linux e windows, per maggiori informazioni visitare questo link. Per installare Node.js sulla propria macchina si può procedere scaricando il pacchetto dal sito ufficiale (link) oppure tramite NVM(Node Version Manager), al seguente link.

N.B: si consiglia di utilizzare la versione 15.14.0 di Node.js sulla quale è stata sviluppato e testato l'applicativo, e di conseguenza di utilizzare NVM per l'installazione

Requisiti della macchina

Non sono richiesti alcuni requisiti di hardware, ma affinché il Bot prenoti in automatico l'aula desiderata è fortemente consigliato un dispositivo che rimanga acceso 24/7. Si possono utilizzare dei siti di Hosting online, come ad esempio AWS, Azure, Heroku, etc...

Configurazione:

  • Clonare la repository di git

  • Creare un file chiamato config.json

  • Compilare il file config.json, tenendo conto che al suo interno vi deve essere un JSON. Per prima cosa è fortemente consigliato copiare e incollare la sottostante configurazione.

{
  "BOT_TOKEN": "<BOT TOKEN>",
  "orario": "<ORARIO FORMATO CRON>",
  "viewport": {
    "width": "<WIDTH>",
    "height": "<HEIGHT>"
  },
  "config": {
    "headless": "<MODE>"
  },
  "users": {
    "user1": {
      "credentials": {
        "username": "<ESSE3 USERNAME>",
        "password": "<ESSE3 PASSWORD>",
        "tg_username": "<TELEGRAM USERNAME>"
      },
      "Sunday": [ ],
      "Monday": [ "<SP>" ],
      "Tuesday": [ "<SP>" ],
      "Wednesday": [ "<SP>" ],
      "Thursday": [ "<SP>" ],
      "Friday": [ "<SP>" ],
      "Saturday": [ ]
    },
    "user2": {
      "credentials": {
        "username": "<ESSE3 USERNAME>",
        "password": "<ESSE3 PASSWORD>",
        "tg_username": "<TELEGRAM USERNAME>"
      },
      "Sunday": [ ],
      "Monday": [ "<SP>" ],
      "Tuesday": [ "<SP>" ],
      "Wednesday": [ "<SP>" ],
      "Thursday": [ "<SP>" ],
      "Friday": [ "<SP>" ],
      "Saturday": [ ]
    }
  }
}

BOT_TOKEN

Nella chiave BOT_TOKEN va specificato come stringa(tra virgolette) il token del bot da voi creato e sul quale si vuole ricevere gli screenshot della prenotazione.

N.B la chiave deve essere presente nell'oggetto di configurazione e deve essere specificato un valore corretto

Orario

Nella chiave orario va specificato l'ora e i minuti in cui il bot in automatico andrà ad attivarsi. Questo dato è una stringa ed esiste un formato da rispettare chiamato Cron time string format, vi lasciamo un link in cui è spiegato l'utilizzo e nel quale vi sono alcuni esempi.

N.B la chiave deve essere presente nell'oggetto di configurazione e deve essere specificato un valore corretto

Viewport

La proprietà viewport va compilata con un oggetto nel quale siano presenti le chiavi width e height, ciascuna di esse deve essere di tipo numerico. Tramite width (larghezza) e height (altezza) si andranno a settare le dimensioni della pagina del browser e di conseguenza dello screenshot della prenotazione.

N.B la chiave deve essere presente nell'oggetto di configurazione e deve essere specificato un valore corretto

Config

La chiave config va compilata come oggetto. Può essere lasciata come oggetto vuoto {} in tal caso si useranno le configurazioni di default. L'unica chiave che consigliamo di specificare è headless che assume valori booleani (true o false) e determina la apertura programmatica di un browser in modalità background o meno; La configurazione consigliata per la chiave config nel caso in cui si utilizzi un Raspberry py è la seguente:

"config": {
 "headless": true,
 "executablePath": "/usr/bin/chromium-browser",
 "args": ["--no-sandbox", "--disable-setuid-sandbox"]
}

N.B la chiave deve essere presente nell'oggetto ma può essere compilata come oggetto vuoto. Per maggiori informazioni sugli argomenti che è possibile passare nella chiave args è possibile trovare la documentazione ufficiale in questo link

Users

La chiave users va compilata come oggetto. Al suo interno è possibile specificare un numero arbitrario di utenti. Il programma prenoterà l'aula per ciascuno degli utenti configurati nel file. Ogni utente viene definito da un identificativo non rilevante ai fini dell'esecuzione (user1), questo identificativo è anche la chiave che contiene tutte le informazioni di un utente.

N.B la chiave deve essere presente nell'oggetto di configurazione e deve essere specificato un valore corretto

Credentials

La chiave credentials va compilata come oggetto. Al suo interno vanno inserite le chiavi: username il nome utente di ESSE3. password la password di ESSE3. tg_username username di telegram per permette al bot di inviarvi un messaggio.

N.B lo username di telegram va inserito senza mettere la @.

SP

Ogni aula del nostro dipartimento viene codificata da un codice sp. I codici corrispondono a un'aula e a un determinato orario. Questo codice viene inserito alla fine dell'url seguendo lo schema sotto riportato: (https://presenze.unimore.it/spacemr/#?page=s__prsncdd&sp= (CODICE DA COPIARE)) Bisogna inserire questo codice in formato stringa. Nel caso nell'arco di una giornata sia necessario prenotare più di un'aula, inserisci i codici come segue:

"Monday": ["1", "2"]

N.B nel caso un giorno non si voglia prenotare nessuna aula, lasciare il campo sp vuoto.

Avvio del bot

Installazione dei node modules

Per installare i node modules scrivere il comando npm i

N.B Assicurarsi d'installare il modulo pm2 globalmente tramite il comando npm i -g pm2.

Green pass (facoltativo)

Nella cartella photos è possibile inserire una foto in formato jpeg del proprio green pass.

Il bot di telegram provvederà a inviarlo assieme allo screenshot della prenotazione.

Salvare la foto come segue: pass-(tg_username).jpeg.

N.B questo punto è facoltativo e non inciderà sull'esecuzione del programma.

Avvio e terminazione del bot con pm2

Per avviare il bot usare il comando npm start

Per stoppare il bot avviato con pm2 utilizzare il comando da terminale npm stop

Avvio del bot in modalità development

Per avviare il bot in modalità development utilizzare il comando da terminale npm run dev.Questa modalità vi permetterà di avviare una sola volta il bot, il quale al termine dei processi si stopperà da solo

2.2.15

2 years ago

2.2.14

2 years ago

2.2.13

2 years ago

2.2.12

2 years ago

2.2.11

2 years ago

2.2.10

2 years ago

2.2.9

2 years ago

2.2.8

2 years ago

2.2.7

2 years ago

2.2.6

2 years ago

2.2.5

2 years ago

2.2.4

2 years ago

2.2.3

2 years ago

2.2.2

2 years ago

2.2.1

2 years ago

2.2.0

2 years ago