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