Exemple #1
0
        if email == "":
            print("Please enter an email address.")
        # check that it looks like an email address
        # just a simple validation, without using regular expressions
        elif email.find("@") == -1 or email.find(".") == -1:
            print("Please enter a valid email address.")
        else:
            return email


# initialization
prices = dm.DataManager("prices")
# using a different object to handle users
users = dm.DataManager("users")
flight_search = fs.FlightSearch()
notification_manager = nm.NotificationManager()

# load the worksheets
prices_sheet = prices.get_sheet()
users_sheet = users.get_sheet()

# just for some basic interaction
print("Enter \"y\" if you want to add a new user.")
choice = input("> ").lower()
if choice == "y":
    add_new_user()

# add missing codes
for city in prices_sheet:
    if city["iataCode"] == "":
        query_result = flight_search.find_city_code(city["city"])
# This file will need to use the DataManager,FlightSearch, FlightData, NotificationManager classes to achieve the program requirements.

import requests
import os
import data_manager
import notification_manager
import flight_search

# Initialise class references
flight_finder = flight_search.FlightSearch()
flight_data = data_manager.DataManager()
twilio = notification_manager.NotificationManager()

# Load up current flight data
flight_data.get_data()

# Update all city codes
for row in flight_data.data:

    #1. Update IATA Code
    iata_code = row['iataCode']
    if len(iata_code) == 0:
        print(row['city'])
        this_code = flight_finder.get_iata_code(row['city'])
        print(row)
        row['iataCode'] = this_code
        print(row)
        flight_data.set_data(row)

    # 2. Get lowest price
    search_results = flight_finder.get_price(iata_code)
    'curr': 'GBP'
}

data_manager = dm.DataManager(dm.ENDPOINT, dm.SHEET, dm.TOKEN)
for row in data_manager.data['prices']:
    if len(row['iataCode']) != 0:
        continue
    city = row['city']
    params = {'apikey': fs.API_KEY, 'location_types': 'city', 'term': city}
    flight_search = fs.FlightSearch(fs.API_LOCATIONS, fs.ENDPOINT, params)
    row['iataCode'] = flight_search.search_locations('name', city, 'code')
    data_manager.put_data(row)

iata_codes = [row['iataCode'] for row in data_manager.data['prices']]

notification_manager = nm.NotificationManager(nm.ACCOUNT_SID, nm.AUTH_TOKEN)
for idx, iata_code in enumerate(iata_codes):
    flight_params.update(fly_to=iata_code, max_stopovers=0)
    flight_search = fs.FlightSearch(fs.API_SEARCH, fs.ENDPOINT, flight_params)
    data = flight_search.data['data']
    stopped = False
    if len(data) == 0:
        flight_params.update(max_stopovers=1)
        flight_search = fs.FlightSearch(fs.API_SEARCH, fs.ENDPOINT,
                                        flight_params)
        data = flight_search.data['data']
        if len(data) == 0:
            continue
        stopped = True
    flight_data = fd.FlightData(data)
    if flight_data.data['price'] <= data_manager.data['prices'][idx][
Exemple #4
0
    'curr': 'GBP'
}

data_manager = dm.DataManager(dm.ENDPOINT, dm.SHEET, dm.TOKEN)
for row in data_manager.data['prices']:
    if len(row['iataCode']) != 0:
        continue
    city = row['city']
    params = {'apikey': fs.API_KEY, 'location_types': 'city', 'term': city}
    flight_search = fs.FlightSearch(fs.API_LOCATIONS, fs.ENDPOINT, params)
    row['iataCode'] = flight_search.search_locations('name', city, 'code')
    data_manager.put_data(row)

iata_codes = [row['iataCode'] for row in data_manager.data['prices']]

notification_manager = nm.NotificationManager(nm.EMAIL, nm.PASSWORD)
for idx, iata_code in enumerate(iata_codes):
    flight_params.update(fly_to=iata_code, max_stopovers=0)
    flight_search = fs.FlightSearch(fs.API_SEARCH, fs.ENDPOINT, flight_params)
    data = flight_search.data['data']
    stopped = False
    if len(data) == 0:
        flight_params.update(max_stopovers=1)
        flight_search = fs.FlightSearch(fs.API_SEARCH, fs.ENDPOINT,
                                        flight_params)
        data = flight_search.data['data']
        if len(data) == 0:
            continue
        stopped = True
    flight_data = fd.FlightData(data)
    if flight_data.data['price'] <= data_manager.data['prices'][idx][
Exemple #5
0
import data_manager
import flight_search
from pprint import pprint
import datetime
import notification_manager

data = data_manager.DataManager()
flights = flight_search.FlightSearch()
sheet_data = data.get_sheet_data()
notification = notification_manager.NotificationManager()
origin_city = "NYC"
# Using dates from now till 6 months

today = datetime.datetime.today() + datetime.timedelta(days=1)
tomorrow = today.strftime("%d/%m/%Y")
six_months = datetime.datetime.now() + datetime.timedelta(days=6 * 30)
six_months = six_months.strftime("%d/%m/%Y")


def replace_empty_iata():
    for values in sheet_data:
        if values[1] == "":
            # Get the city name
            flight_city = values[0]
            # changing the IATA code in sheet_data to the code
            values[1] = flights.update_iata_code(flight_city)
    pprint(sheet_data)
    data.sheet_data = sheet_data
    data.update_iatacode()