Skip to content

Commit 57887c9

Browse files
author
Miguel Yanez
committed
Updating to use configuration files.
1 parent effe586 commit 57887c9

File tree

5 files changed

+73
-7
lines changed

5 files changed

+73
-7
lines changed

alert/email_alert.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,21 @@
11
import mongoengine
2+
import smtplib
3+
from datetime import datetime
4+
5+
def send_email(user, password, from_addr, to_addr, subject, msg):
6+
server=smtplib.SMTP('smtp.gmail.com:587')
7+
server.starttls()
8+
server.login(user, password)
9+
10+
senddate=datetime.strftime(datetime.now(), '%Y-%m-%d')
11+
12+
formatted_message = "Date: %s\r\nFrom: %s\r\nTo: %s\r\nSubject: %s\r\nX-Mailer: My-Mail\r\n\r\n %s" % (senddate, from_addr, to_addr, subject, msg)
13+
server.sendmail(from_addr, to_addr, formatted_message)
14+
server.quit()
215

316
def send_alert(email, origin, destination, dept_date, ret_date, flights):
417
""" TODO: Refactor """
5-
#return get_min_price_itinerary(get_itineraries("SEA", "JFK", datetime.strptime("12-13-2013", "%m-%d-%Y"), datetime.strptime("12-15-2013", "%m-%d-%Y"), set([Flight(airline="DL", fno="1542")])))
18+
#get_min_price_itinerary(get_itineraries("SEA", "JFK", datetime.strptime("12-13-2013", "%m-%d-%Y"), datetime.strptime("12-15-2013", "%m-%d-%Y"), set([Flight(airline="DL", fno="1542")])))
619

720
if __name__ == '__main__':
821
mongoengine.connect('flight_scraper')

automation/scrape_daily.cfg

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[mongodb]
2+
name = flight_scraper
3+
4+
[email]
5+
username = user
6+
password = pass
7+
8+
[dates]
9+
end = 1-1-2014

automation/scrape_daily.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#!/usr/local/bin/python
2+
import ConfigParser
23
import datetime
34
import logging
45
from mongoengine import *
@@ -8,13 +9,12 @@
89

910
logging.basicConfig(level=logging.INFO)
1011
logger = logging.getLogger(__name__)
12+
Config = ConfigParser.ConfigParser()
13+
Config.read('scrape_daily.cfg')
1114

1215
def bidirectional_search(origin, dest, until_date):
1316
""" Sample Script for automation."""
1417

15-
#Connect to MongoDB
16-
connect('flight_scraper')
17-
1818
#Initialize FlightScraper
1919
flight_scraper = FlightScraper()
2020

@@ -61,11 +61,15 @@ def __get_start_date():
6161
return start_date
6262

6363
if __name__ == '__main__':
64+
#Connect to MongoDB
65+
connect(Config.get("mongodb", "name"))
66+
6467
origin = "SEA"
6568
dest = "PDX"
69+
6670
try:
6771
logger.info("Started at %s" % (datetime.datetime.utcnow()))
68-
bidirectional_search(origin, dest, datetime.datetime.strptime("1-1-2014", "%m-%d-%Y"))
72+
bidirectional_search(origin, dest, datetime.datetime.strptime(Config.get("dates", "end"), "%m-%d-%Y"))
6973
except Exception, e:
7074
logger.error(e)
7175
pass

flight_scraper.cfg

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[mongodb]
2+
name = flight_scraper
3+
4+
[email]
5+
username = user
6+
password = pass
7+
8+
[webapp]
9+
port = 5454

web_app.py

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import ConfigParser
12
import os
23
import mongoengine
34

@@ -18,7 +19,10 @@
1819
#----------------------------------------
1920
app = Flask(__name__)
2021

21-
mongoengine.connect('flight_scraper')
22+
Config = ConfigParser.ConfigParser()
23+
Config.read('flight_scraper.cfg')
24+
25+
mongoengine.connect(Config.get("mongodb", "name"))
2226

2327
app.config.update(
2428
DEBUG = True,
@@ -136,12 +140,39 @@ def graph_2():
136140
#ret = datetime.strptime(ret, '%m-%d-%Y')
137141
#
138142
#return render_template('graph_seats.html', json_obj=graph_seats(origin, dest, dept))
143+
144+
@app.route("/graph_weekly", methods=['GET'])
145+
def graph_weekly():
146+
origin = request.args.get('origin')
147+
dest = request.args.get('dest')
148+
dept = request.args.get('dept')
149+
ret = request.args.get('ret')
150+
151+
start_date = datetime.strptime("1-1-2013", '%m-%d-%Y')
152+
until_date = datetime.strptime("12-31-2013", '%m-%d-%Y')
153+
weekdays = map(int, [4,6])
154+
155+
#Can probably use dateutils parser for this.
156+
freq=DAILY
157+
158+
date_pairs = generate_date_pairs(freq, weekdays, start_date, until_date)
159+
result = list()
160+
161+
for d in date_pairs:
162+
flight_scraper.depart_date = d[0]
163+
flight_scraper.return_date = d[1]
164+
result.append(graph_prices(flight_scraper))
165+
166+
return render_template('graph_weekly.html', graphs=result, length=len(result))
167+
168+
169+
139170
#----------------------------------------
140171
# launch
141172
#----------------------------------------
142173

143174
if __name__ == "__main__":
144-
port = int(os.environ.get("PORT", 5454))
175+
port = int(os.environ.get("PORT", Config.get("webapp", "port")))
145176
app.run(host='0.0.0.0', port=port)
146177

147178

0 commit comments

Comments
 (0)