from pprint import pprint from flight_search import FlightSearch from twilio.rest import Client from keys import account_sid, auth_token, TWILIO_NUMBER, MY_NUMBER ORIGIN_CITY_CODE = "DFW" ORIGIN_CITY = "Dallas" data_manager = DataManager() sheet_data = data_manager.get_destination_data() flight_search = FlightSearch() #Check if iata code is missing in first city, if yes get the code and update the sheet if sheet_data[0]["iataCode"] == '': for data in sheet_data: data["iataCode"] = flight_search.get_iata_code(data["city"]) data_manager.destination_data = sheet_data data_manager.update_iata_code() for destination in sheet_data: flight = flight_search.search_flights(ORIGIN_CITY_CODE, destination["iataCode"]) if flight != None: if flight.price < destination["lowestPrice"]: #Twilio client client = Client(account_sid, auth_token) message = client.messages.create(body=f"""\n Low price alert!!!\n Only ${flight.price} to fly from {flight.departure_city}-{flight.departure_airport_code} to {flight.destination_city}-{flight.destination_airport_code},\n from {flight.out_date} to {flight.return_date}.
from datetime import datetime, timedelta from data_manager import DataManager from flight_search import FlightSearch ORIGIN_CITY_IATA = "MIA" database = DataManager() search = FlightSearch() for item in database.prices["prices"]: if not item["iataCode"]: iata_code = search.get_iata_code(city=item["city"]) print(iata_code) database.update_iata_code(item, iata_code) tomorrow = datetime.now() + timedelta(days=1) six_month_from_today = datetime.now() + timedelta(days=(6 * 30)) for destination in database.prices["prices"]: flight = search.check_flights( ORIGIN_CITY_IATA, destination["iataCode"], from_time=tomorrow, to_time=six_month_from_today ) if flight.price < destination["lowestPrice"]: notification_manager.send_sms( message=f"Low price alert! Only ${flight.price} to fly from {flight.origin_city}-{flight.origin_airport} to {flight.destination_city}-{flight.destination_airport}, from {flight.out_date} to {flight.return_date}." )
from data_manager import DataManager from flight_search import FlightSearch from notification_manager import NotificationManager ORIGIN = "NBO" # Populate Google sheet copy flight_sheet = DataManager() sheet_data = flight_sheet.get_sheet_data() # Get IATA code flight_search = FlightSearch() for row in sheet_data: if row['iataCode'] == "": row['iataCode'] = flight_search.get_iata_code(row['city']) # Update IATA code on google sheet flight_sheet.update_sheet_data() # Get cheap flights for row in sheet_data: flights = flight_search.get_flight_details(ORIGIN, row['iataCode']) if flights and flights.price <= row['lowestPrice']: notification = NotificationManager(flights.price, ORIGIN, flights.source_airport, flights.dest_city, flights.dest_airport) notification.send_email() else: continue
#This file will need to use the DataManager,FlightSearch, FlightData, NotificationManager classes to achieve the program requirements. from data_manager import DataManager from flight_search import FlightSearch from pprint import pprint data_manager = DataManager() sheet_data=data_manager.get_data() flight_search=FlightSearch() for data in sheet_data["prices"]: code=flight_search.get_iata_code(data["city"]) data["iataCode"]=code id=data["id"] body={ "price":{ "iataCode": code } } data_manager.update(id,body) data_manager.data=sheet_data print(data_manager.data)