Skip to content
This repository has been archived by the owner on Nov 12, 2019. It is now read-only.

Commit

Permalink
various error handling
Browse files Browse the repository at this point in the history
  • Loading branch information
alex committed Jan 28, 2012
1 parent fabc4c0 commit 70ee181
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 8 deletions.
30 changes: 26 additions & 4 deletions app.py
@@ -1,3 +1,4 @@
import functools
import os
from collections import namedtuple
from datetime import date, time, timedelta
Expand Down Expand Up @@ -104,10 +105,28 @@ def find_record(team):
def sub_hours(orig_time, hours):
return time(orig_time.hour - hours, orig_time.minute).strftime("%I:%M")

def error(msg):
return jsonify(error=msg)

def handle_errors(func):
@functools.wraps(func)
def inner(*args, **kwargs):
try:
return func(*args, **kwargs)
except Exception:
XXX # LOG ERROR TO SENTRY
return error("Uh oh. Something went wrong on our end. We've "
"dispatched trained monkeys to investigate.")
return inner

@app.route("/generate/", methods=["POST"])
@handle_errors
def generate():
away = get_team(request.form["away"])
home = get_team(request.form["home"])
try:
away = get_team(request.form["away"])
home = get_team(request.form["home"])
except LookupError:
return error("Please select a team.")

today = date.today()
nba_url = NBA_URL.format(
Expand All @@ -122,7 +141,10 @@ def generate():
home_wins, home_losses = find_record(home)

r = requests.get(nba_url)
assert r.status_code == 200
if r.status_code == 404:
return error("These teams don't seem to be playing tonight.")
r.raise_for_status()

nba_page = PyQuery(r.text)
info = nba_page("#nbaGIStation").find(".nbaGITime").text()
gametime, stadium = info.split("-")
Expand Down Expand Up @@ -160,4 +182,4 @@ def configure_raven(app):

if __name__ == "__main__":
port = int(os.environ.get("PORT", 5000))
app.run(host="0.0.0.0", port=port)
app.run(host="0.0.0.0", port=port, debug=True)
19 changes: 15 additions & 4 deletions templates/home.html
Expand Up @@ -28,16 +28,27 @@
</style>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="{{ url_for('static', filename='js/chosen.jquery.min.js') }}"></script>
<script type="text/javascript" src="{{ url_for('static', filename='js/bootstrap-alerts.js') }}"></script>
<script type="text/javascript">
$(function() {
$(".dropdown-select").chosen();
$("#main-form").submit(function() {
var form = $(this);
$.post(form.prop("action"), form.serialize(), function (data) {
$("#gamethread-text").html('<p>Title</p><input '
+ 'class="span12" value="' + data["title"] + '" />'
+ '<br /><p>Body</p><textarea rows="15" class="span12">'
+ data["body"] + '</textarea>');
if (data["error"]) {
$("#gamethread-text").html('<div '
+ 'class="alert-message error"><a class="close"'
+ ' href="#">×</a><p>' + data["error"]
+ '</p></div>')
$(".alert-message").alert();
}
else {
$("#gamethread-text").html('<p>Title</p><input '
+ 'class="span12" value="' + data["title"]
+ '" /><br /><p>Body</p><textarea rows="15" '
+ 'class="span12">' + data["body"]
+ '</textarea>');
}
})
return false;
})
Expand Down

0 comments on commit 70ee181

Please sign in to comment.