Example #1
0
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}.')
Example #2
0
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)
Example #3
0
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"]:
Example #4
0
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,
Example #5
0
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}, ' \