First commit.
This commit is contained in:
commit
83433c99f8
87
main.py
Normal file
87
main.py
Normal file
@ -0,0 +1,87 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import requests
|
||||
import sys
|
||||
import json
|
||||
import time
|
||||
from datetime import datetime
|
||||
from dateutil import tz
|
||||
from prettytable import PrettyTable as pt
|
||||
|
||||
trains = [ '18847', '18687', '18853', '18689', '18859', '18691' ]
|
||||
|
||||
ENDPOINT_TRAIN_METADATA = 'http://www.viaggiatreno.it/infomobilita/resteasy/viaggiatreno/cercaNumeroTrenoTrenoAutocomplete/'
|
||||
ENDPOINT_TRAIN_DETAILS = 'http://www.viaggiatreno.it/infomobilita/resteasy/viaggiatreno/andamentoTreno/'
|
||||
|
||||
table = pt()
|
||||
table.field_names = ['train', 'departure', 'destination', 'departed', 'delay']
|
||||
for train in trains:
|
||||
r = requests.get(ENDPOINT_TRAIN_METADATA + '/' + train)
|
||||
if r.status_code != 200:
|
||||
sys.exit(1)
|
||||
|
||||
metadata = None
|
||||
try:
|
||||
metadata = str(r.text).split('|')[1]
|
||||
except:
|
||||
pass
|
||||
if metadata is not None:
|
||||
splits = metadata.split('-')
|
||||
from_station_number = splits[1]
|
||||
today_timestamp = splits[2]
|
||||
|
||||
query = (ENDPOINT_TRAIN_DETAILS + '/' + from_station_number + '/' + train + '/' + today_timestamp).strip()
|
||||
|
||||
train_details = requests.get(query).text
|
||||
|
||||
train_json = json.loads(train_details)
|
||||
# print(train_json)
|
||||
|
||||
current_timestamp = int(time.time()) # UTC
|
||||
|
||||
|
||||
ultima = 'Vergate sul Membro'
|
||||
partito = True
|
||||
partenza_human = None
|
||||
for fermata in train_json['fermate']:
|
||||
effettiva = fermata['effettiva'] # orario di partenza effettivo (?)
|
||||
stazione = fermata['stazione']
|
||||
ritardo = fermata['ritardo']
|
||||
progressivo = fermata['progressivo']
|
||||
ultima = fermata['stazione']
|
||||
|
||||
if progressivo == 1 and effettiva == None:
|
||||
partito = False
|
||||
|
||||
if stazione == 'CALENZANO':
|
||||
partenza_utc = fermata['partenza_teorica'] / 1000
|
||||
partenza_utc = datetime.utcfromtimestamp(partenza_utc)
|
||||
partenza_utc = partenza_utc.replace(tzinfo=tz.gettz('UTC'))
|
||||
partenza_local = partenza_utc.astimezone(tz.gettz('Europe/Rome'))
|
||||
partenza_human = partenza_local.strftime('%H:%M')
|
||||
|
||||
ritardo = train_json['ritardo']
|
||||
row = [ train, partenza_human, ultima, partito, ritardo ]
|
||||
table.add_row(row)
|
||||
else:
|
||||
row = [ train, None, None, None, None ]
|
||||
table.add_row(row)
|
||||
|
||||
# print('train:', train, 'departure:' , partenza_human, 'to:', ultima, 'departed:', partito, 'delay:', train_json['ritardo'], 'min')
|
||||
|
||||
"""
|
||||
# stazione di partenza
|
||||
if fermata['progressivo'] == 1:
|
||||
programmata = fermata['programmata'] # UNIX timestamp seconds, UTC
|
||||
effettiva = fermata['effettiva']
|
||||
|
||||
# l'unica vera stazione importante che ci interessa
|
||||
if fermata['stazione'] == "CALENZANO":
|
||||
programmata = fermata['programmata']
|
||||
|
||||
pass
|
||||
|
||||
"""
|
||||
|
||||
print(table)
|
||||
|
Loading…
Reference in New Issue
Block a user