Esempio n. 1
0
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,
    )
Esempio n. 2
0
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]
Esempio n. 3
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 ' \