Skip to content

Commit

Permalink
Merge pull request #34 from linuchs/post_rev
Browse files Browse the repository at this point in the history
Applica alcune modifiche post review
  • Loading branch information
linuchs authored Apr 3, 2024
2 parents a73006b + 5386bea commit 60d3d29
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 13 deletions.
14 changes: 12 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@ Botquake è un progetto per il corso di Quality Development
### Cosa ci proponiamo di realizzare
Ciò che si intende realizzare è un BOT Telegram, ovvero una applicazione eseguita sulla nostra macchina la quale comportandosi da server estenderà le funzionalità del server di Telegram, al quale un utente potrà inviare comandi mediante l'interfaccia di chat messa a disposizione dal client di Telegram. Il comando sarà reindirizzato alla nostra macchina che darà risposta tramite il server Telegram al client dal quale l'utente ha inviato il comando.
#### Specifiche dell'applicazione Botquake
L'applicazione elaborerà i dati forniti sul sito https://terremoti.ingv.it/ dall'Ingv,sotto licenza Creative Commons Attribution 4.0 International https://creativecommons.org/licenses/by/4.0/.
L'applicazione elaborerà i dati forniti sul sito https://terremoti.ingv.it/ dall'Ingv,sotto licenTza Creative Commons Attribution 4.0 International https://creativecommons.org/licenses/by/4.0/.
I dati fanno parte di una database di eventi relativi a diverse reti di rilevazione mondiale di terremeventi sismici, per il nostro scopo restringeremo la zona di interesse all'area Etnea.
L'utente potrà interagire con il Bot tramite appositi comandi, in particolare potra richiedere i dati sull'ultimo terremoto avvenuto nell'area di interesse, nonchè potra affinare la ricerca con un apposito comando impostando una magnitudine massima.
![botfather](images/botquake_01.jpg)
Alla richiesta il bot risponderà con i dati dell'ultimo terremoto relativo al comando inviato.
Seguirà una mappa relativa al luogo dell'evento con il grado di magnitudine dell'evento sismico rilevato.
![botfather](images/botquake_02.jpg)



### BotFather
#### Inizializzazione del Bot
##### Ottenere la chiave API per il BOT:
Expand All @@ -19,7 +21,15 @@ Dobbiamo aprire la versione desktop o la versione mobile di Telegram, quindi cer
Bisogna per prima cosa inizializzare attraverso la chat di Telegram BotFather la chat Bot per il nostro progetto, impostare il nome del Bot e l'identificativo che deve terminare con il suffisso bot, per fare questo basta seguire l'albero dei comandi come dalla figura sotto.
![botfather](images/botfather_02.jpg)
#### Chiave di autenticazione del Bot
Una volta finito il primo step, BotFather ci assegnerà un token che sarà la chiave di autenticazione del nostro progetto sul server Telegram
Una volta finito il primo step, BotFather ci assegnerà un token che sarà la chiave di autenticazione del nostro progetto sul server Telegram.
>[!Note]
>Qualora si voglia eseguire il bot localmente decommentare la riga 130
>`token_bot = "IL_TUO_TOKEN_BOT`
>del file src/bot_quake.py e inserire il Token Telegram al posto di "IL_TUO_TOKEN_BOT", >contestualmente commentare la riga successiva,
>`token_bot = os.environ.get("TELEGRAM_BOT")`.
>Altrimenti andare su "SETTINGS" e scegliere "SECURITY" e di seguito "Secrets and Variables"
>quindi in "Repository" creare un nuovo "Repository secrets" chiamarlo 'TELEGRAM_BOT' e assegnargli il token del bot fornito da Telegram.
#### Libreria telegram per python
La libreria python-telegram-bot https://pypi.org/project/python-telegram-bot/ ci servirà per interagire con le API di Telegram questa permetterà di impostare la comunicazione tra la il server telegram e l'applicazione in esecuzione sulla nostra macchina.

Expand Down
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
python-telegram-bot==21.0.1
4 changes: 1 addition & 3 deletions requirements_dev.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
pytest
pytest-mock
pytest-cov
pylint
pytest-asyncio
anyio
python-telegram-bot==21.0.1
pylint
1 change: 1 addition & 0 deletions src/bot_quake.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ def build_bot(token_bot: str) -> Application:

def get_token_bot() -> str:
"""Get the token bot from environment variables."""
#token_bot = "IL_TUO_TOKEN_BOT
token_bot = os.environ.get("TELEGRAM_BOT")
if token_bot is None:
raise ValueError(
Expand Down
2 changes: 1 addition & 1 deletion src/utils/helper/classes.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@ def __init__(self):
self.minlon = 14.5
self.maxlon = 15.5

def get_coordinates(self):
def get_coordinates(self)->"ZoneMap":
"""Restituisce le coordinate"""
return self
17 changes: 10 additions & 7 deletions src/utils/helper/gethelp.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
"""Helper module"""
from datetime import date, timedelta
from typing import List
from utils.helper.classes import ZoneMap


def get_date_range(d_range):


def get_date_range(d_range: int) -> List[date]:
"""la funzione imposta i valori temporali dei dati da scaricare
in un range che va dal giorno attuale indietro di un valore d_range"""
date_range = [None] * 2
today = date.today()
# today.strftime("%m/%d/%Y") #,ritorna una stringa in formato mese,giorno,anno ,a noi non serve
date_range: List[date] = [None] * 2
today: date = date.today()
if d_range < 0:
days_inthe_past = today - timedelta(days=7)
days_inthe_past: date = today - timedelta(days=7)
else:
days_inthe_past = today - timedelta(days=d_range)
days_inthe_past: date = today - timedelta(days=d_range)
date_range[0] = days_inthe_past
date_range[1] = today
return date_range


def generate_url(intervallo_date, massima_magnitudo, zona):
def generate_url(intervallo_date: List[date], massima_magnitudo: float, zona: ZoneMap) -> str:
"""Genera l'url per la richiesta dei dati sismici"""
filename = (
f"https://webservices.ingv.it/fdsnws/event/1/query?starttime="
Expand Down

0 comments on commit 60d3d29

Please sign in to comment.