示例#1
0
load_dotenv()
CURRENCY = "GBP"
home_city_iata = os.getenv("HOME_CITY_IATA")

# This file will need to use the DataManager,FlightSearch, FlightData,
# NotificationManager classes to achieve the program requirements.
data_manager = DataManager()
flight_search = FlightSearch()
notification = NotificationManager()

data_manager.read_sheet()

date_from = (datetime.now() + timedelta(days=1)).strftime("%d/%m/%Y")
date_to = (datetime.now() + timedelta(days=(6 * 30))).strftime("%d/%m/%Y")

for row in data_manager.sheet_data:
    if not row["iataCode"]:
        row["iataCode"] = flight_search.get_city_code(row["city"])
        data_manager.update_iata(row["id"], row["iataCode"])

    flight = flight_search.get_flights(
        departure_iata=home_city_iata,
        destination_iata=row["iataCode"],
        departure_date=date_from,
        return_date=date_to,
        currency=CURRENCY,
    )
    if flight and flight.price <= row["lowestPrice"]:
        notification.send_flight_alert_sms(flight)
示例#2
0
data_manager = DataManager()

sheet_data = data_manager.get_sheet_data()

if sheet_data[0]["iataCode"] == "":
    for row in sheet_data:
        row["iataCode"] = flight_search.get_destination_codes(row["city"])
    print(sheet_data)

    data_manager.destination_data = sheet_data
    data_manager.update_sheet_data()

users = data_manager.get_emails()
firstNames = [item['firstName'] for item in users]
lastNames = [item['lastName'] for item in users]
emails = [item['email'] for item in users]

for row in sheet_data:
    # print(row)
    flight = flight_search.get_flights(row["iataCode"])
    lowest_price = row["lowestPrice"]
    if flight is not None:
        if flight["price"] < lowest_price:
            notification_manager = NotificationManager()
            # notification_manager.send_message(flight)
            notification_manager.send_mail(flight=flight,
                                           fnames=firstNames,
                                           lnames=lastNames,
                                           emails=emails)