2016-07-10 16:03:47 +00:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
|
|
|
import subprocess
|
|
|
|
import sys
|
|
|
|
|
|
|
|
import captaintrain as ct
|
|
|
|
|
2016-07-10 16:55:53 +00:00
|
|
|
def usage():
|
|
|
|
print("""cheapest_ticket.py departure-station arrival-station departure-date
|
|
|
|
|
|
|
|
departure-date: any string parsable by date -d
|
|
|
|
""")
|
2016-07-10 16:03:47 +00:00
|
|
|
|
|
|
|
if __name__ == "__main__":
|
2016-07-10 16:55:53 +00:00
|
|
|
if len(sys.argv) <= 3:
|
|
|
|
usage()
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
departure = ct.station(sys.argv[1])
|
|
|
|
if departure is None:
|
|
|
|
print("Unknown station '%s'" % sys.argv[1])
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
arrival = ct.station(sys.argv[2])
|
|
|
|
if arrival is None:
|
|
|
|
print("Unknown station '%s'" % sys.argv[2])
|
|
|
|
sys.exit(1)
|
|
|
|
|
|
|
|
departure_time = 0
|
|
|
|
|
|
|
|
with subprocess.Popen(["date", "-d", sys.argv[3], "-u", "-Iseconds"], stdout=subprocess.PIPE) as f:
|
|
|
|
departure_time = f.stdout.read().strip().decode()
|
|
|
|
|
|
|
|
if departure_time == 0 or departure_time == "":
|
|
|
|
sys.exit(1)
|
2016-07-10 16:03:47 +00:00
|
|
|
else:
|
2016-07-10 16:55:53 +00:00
|
|
|
departure_time = ct.parse_datetime(departure_time)
|
|
|
|
|
|
|
|
print("From:", departure.name, departure.id)
|
|
|
|
print("To:", arrival.name, arrival.id)
|
|
|
|
print("Departure:", departure_time)
|
|
|
|
|
|
|
|
#with open("res.json") as f:
|
|
|
|
# import json
|
|
|
|
# res = ct.Search(**json.load(f))
|
|
|
|
|
|
|
|
res = ct.search(departure, arrival, departure_time)
|
|
|
|
min_trips = ct.cheapest_trips(res.trips)
|
|
|
|
for trip in min_trips:
|
|
|
|
print(trip)
|