def main(): data_manager = DataManager() sheet_data = data_manager.read_data() flight_search = FlightSearch() notification_manager = NotificationManager() if len(sheet_data) > 0: for row in sheet_data: if row['iataCode'] == '': row['iataCode'] = flight_search.search_iata(row['city']) data_manager.destination_data = sheet_data data_manager.update_data() tomorrow = datetime.now() + timedelta(days=1) six_months_from_today = datetime.now() + timedelta(days=180) for destination in sheet_data: flight = flight_search.search_flights(ORIGIN_CITY_IATA, destination['iataCode'], from_time=tomorrow, to_time=six_months_from_today) if flight.price < destination['lowestPrice']: notification_manager.send_sms( msg= f'Low price alert! Only £{flight.price} to fly from {flight.origin_city}-{flight.origin_airport} ' f'to {flight.destination_city}-{flight.destination_airport}, from {flight.out_date} ' f'to {flight.return_date}.')
def main(): data_manager = DataManager() sheet_data = data_manager.read_data() flight_search = FlightSearch() notification_manager = NotificationManager() if len(sheet_data) > 0: for row in sheet_data: if row['iataCode'] == '': row['iataCode'] = flight_search.search_iata(row['city']) data_manager.destination_data = sheet_data data_manager.update_data() sheet_data = data_manager.read_data() destinations = { data["iataCode"]: { "id": data["id"], "city": data["city"], "price": data["lowestPrice"] } for data in sheet_data } tomorrow = datetime.now() + timedelta(days=1) six_months_from_today = datetime.now() + timedelta(days=180) for destination in destinations: flight = flight_search.search_flights(ORIGIN_CITY_IATA, destination['iataCode'], from_time=tomorrow, to_time=six_months_from_today) if flight is None: continue if flight.price < sheet_data[destination]['price']: users = data_manager.get_customer_emails() emails = [row['email'] for row in users] names = [row['firstName'] for row in users] msg = f'Low price alert! Only £{flight.price} to fly from {flight.origin_city}-{flight.origin_airport} ' f'to {flight.destination_city}-{flight.destination_airport}, from {flight.out_date} ' f'to {flight.return_date}.' if flight['stop_overs'] > 0: msg += f'\nFlight has {flight["stop_overs"]} stop over, via {flight["via_city"]}' link = f'https://www.google.co.uk/flights?hl=en#flt={flight.origin_airport}.{flight.destination_airport}' \ f'.{flight.out_date}*{flight.destination_airport}.{flight.origin_airport}.{flight.return_date}' notification_manager.send_emails(emails, msg, link)
from flight_data import FlightData from data_manager import DataManager from flight_search import FlightSearch from notification_manager import NotificationManager flight_search = FlightSearch() data_manager = DataManager() sheet_data = data_manager.get_destination_data() if sheet_data[0]["iataCode"] == "": for row in sheet_data: row["iataCode"] = flight_search.get_destination_code(row["city"]) print(sheet_data) data_manager.destination_data = sheet_data data_manager.update_destination_codes() print(sheet_data) cities = [value["iataCode"] for value in sheet_data] for i in cities: x = 0 price = flight_search.get_prices(i) notification = NotificationManager(price.price, price.origin_city, price.origin_airport, price.destination_city, price.return_date, price.out_date, price.destination_airport, price.noinfo) if price.noinfo and price.price < sheet_data[x]["lowestPrice"]:
ORIGIN_CITY_IATA = "JFK" # Read/Write to Google Sheet datamgr = DataManager() sheet_data = datamgr.get_destination_data() notification_manager = NotificationManager() flight_search = FlightSearch() today = datetime.now() tomorrow = today + timedelta(days=1) six_months = today + timedelta(days=(6 * 30)) if sheet_data[0]["iataCode"] == "": for row in sheet_data: row["iataCode"] = flight_search.get_destination_code(row["city"]) datamgr.destination_data = sheet_data datamgr.update_destination_codes() destinations = { data["iataCode"]: { "id": data["id"], "city": data["city"], "price": data["lowestPrice"], } for data in sheet_data } for destination_code in destinations: flight = flight_search.check_flights( origin_airport=ORIGIN_CITY_IATA, departure_airport_code=destination_code,
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 ' \ f'{flight_data.departure_city_name}-{flight_data.departure_airport} ' \ f'to {flight_data.arrival_city_name}-{flight_data.arrival_airport}, ' \