from flight_search import FlightSearch from datetime import datetime, timedelta from notification_manager import NotificationManager ORIGIN_CITY_CODE = "NYC" # Step 3 data_manager = DataManager() sheet_data = data_manager.get_data_destination() customer_data = data_manager.get_customer_emails() flight_search = FlightSearch() notificator = NotificationManager() # If the city in the spreadsheet doesn't have a IATA Code this part will get it and update the spreadsheet for row in range(len(sheet_data)): if sheet_data[row]['IATA Code'] == '': sheet_data[row]['IATA Code'] = flight_search.get_city_code( sheet_data[row]['City']) data_manager.data_destination = sheet_data data_manager.update_destination_code() # Obtain dates tomorrow = datetime.now() + timedelta(days=1) six_months_from_now = tomorrow + timedelta(days=(6 * 30)) found_flights = True for destination in sheet_data: flight = flight_search.search_for_flight( ORIGIN_CITY_CODE, destination['IATA Code'], from_date=tomorrow, to_date=six_months_from_now, )
from data_manager import DataManager from flight_search import FlightSearch from flight_data import FlightData from notification_manager import NotificationManager data_manager = DataManager() sheet_data = data_manager.get_data() if sheet_data[0]['iataCode'] == "": flight_search = FlightSearch() for city in sheet_data: city["iataCode"] = flight_search.get_city_code(city["city"]) print(f"sheet_data:\n {sheet_data}") data_manager.destination_data = sheet_data data_manager.input_data() flight_data = FlightData() for city in sheet_data: data = flight_data.flight_info(city["iataCode"]) if data == "unavailable": print(f"{city['city']}: not available, even with stopover") continue else: price = data["price"] print(f"{city['city']}: £{price}") if price is not None: if int(price) < city["lowestPrice"]: routes = data['route'] depart = routes[0]['local_arrival'].split("T")[0]
TWILIO_SID = os.environ.get('TWILIO_SID') TWILIO_API = os.environ.get('TWILIO_API') TEQUILA_API = os.environ.get('TEQUILA_API') PW_GMAIL = os.environ.get("PW_GMAIL") dm = DataManager() sheet_data = dm.get_destination_data() fs = FlightSearch(tequila_api=TEQUILA_API) notification_mng = NotificationManager(TWILIO_SID, TWILIO_API, gmail_password=PW_GMAIL) if sheet_data[0]['iataCode'] == "": for city in sheet_data: city['iataCode'] = fs.get_city_code(city['city']) dm.destination_data = sheet_data dm.update_destination_data() for item in sheet_data: flight_data = fs.search_flights(item['iataCode']) if flight_data is None: pass if flight_data.price < item['lowestPrice']: users = dm.get_client_emails() emails = [item['email'] for item in users] msg = f'Low Price alert! Only £{flight_data.price} to fly from ' \