diff --git a/scrape.py b/scrape.py index c35f3fd59b8ae19ca89bcc407cc96539d01567a5..10c519d97269fd4b772a636676395a0b754dc3f8 100644 --- a/scrape.py +++ b/scrape.py @@ -6,7 +6,10 @@ from itertools import repeat def scrape(results_url): - results = requests.get(results_url) + try: + results = requests.get(results_url) + except requests.exceptions.MissingSchema: + results = requests.get("http://{}".format(results_url)) results_tree = html.fromstring(results.content) try: event_urls = results_tree.xpath( @@ -20,13 +23,16 @@ def scrape(results_url): events = [] for event_url in event_urls: if not urlparse(event_url).netloc: - event_url = urljoin(results_url, event_url) + event_url = urljoin(results.url, event_url) event = requests.get(event_url) event_tree = html.fromstring(event.content) event_details = event_tree.xpath( '//span[@class="tournDetails"]/text()') - event_name = event_details[0] - event_time = event_details[1] + try: + event_name = event_details[0] + event_time = event_details[1] + except: + raise(Exception("Failed to interpret live results for event \"{}\".".format(event_url))) if event_tree.xpath('//a[text()="Final Results"]'): fencers = event_tree.xpath('//div[@id="finalResults"]/table/tr/td[2]/text()') fencers = dict(zip(fencers, repeat("Checked In"))) diff --git a/templates/base.html b/templates/base.html index ad0814a7966df3986e6c246cd89ae58a63cd8c30..6ed2e218e352008f54a318666b50db10a6da8098 100644 --- a/templates/base.html +++ b/templates/base.html @@ -3,7 +3,7 @@ <head> <meta charset="utf-8"> <title>Armory Dashboard</title> - <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scaleable=0"> + <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"> <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}?t=20180325"> <link rel="apple-touch-icon" sizes="180x180" href="{{ url_for('static', filename='images/icons/apple-touch-icon.png') }}?t=20180325"> <link rel="icon" type="image/png" sizes="32x32" href="{{ url_for('static', filename='images/icons/favicon-32x32.png') }}?t=20180325"> @@ -16,6 +16,7 @@ <meta name="msapplication-TileColor" content="#da532c"> <meta name="msapplication-config" content="{{ url_for('static', filename='images/icons/browserconfig.xml') }}?t=20180325"> <meta name="theme-color" content="#ffffff"> + {% block extra_head %}{% endblock extra_head %} </head> <body class="page-{{ request.endpoint }}"> {% block content %}{% endblock content %} diff --git a/templates/index.html b/templates/index.html index d3df7ed4e6eb8aa44b4f46854d4f7ec913cfa68c..5e8386c7efa92e918130a8406bc0dda77d8a15eb 100644 --- a/templates/index.html +++ b/templates/index.html @@ -12,9 +12,23 @@ <label>Live Results URL: <select name="results_url"> <option value="" selected disabled>-- Select One --</option> - <option value="http://escrimeresults.com/cobra/">Cobra</option> - <option value="http://escrimeresults.com/thrust/">Thrust</option> - <option value="http://njfencingresults.org/liveresults/">NJFencingResults.org</option> + <optgroup label="Escrime Management"> + <option value="http://escrimeresults.com/tournaments/NCAA.html">NCAA</option> + <option value="http://escrimeresults.com/tournaments/Atlantic-Coast-Conference.html">Atlantic Coast Conference</option> + <option value="http://escrimeresults.com/tournaments/Ivy-League.html">Ivy League</option> + <option value="http://escrimeresults.com/cobra/">Cobra</option> + <option value="http://escrimeresults.com/thrust/">Thrust</option> + <option value="http://escrimeresults.com/tournaments/NJSIAA.html">NJSIAA</option> + <option value="http://escrimeresults.com/Candlewood/">Candlewood</option> + <option value="http://escrimeresults.com/tournaments/U-Penn.html">U Penn</option> + <option value="http://escrimeresults.com/tournaments/Temple-University.html">Temple U</option> + <option value="http://escrimeresults.com/Big1/">Big1</option> + <option value="http://escrimeresults.com/tournaments/US-Collegiate-Squad-Championships.html">US Collegiate Squad</option> + <option value="http://escrimeresults.com/MKHS/">MKHS</option> + </optgroup> + <optgroup label="NJ Division"> + <option value="http://njfencingresults.org/liveresults/">NJFencingResults.org/liveresults</option> + </optgroup> </select> </label> <input type="submit" value="Go!"> @@ -23,7 +37,7 @@ <p> <form action="{{ url_for('live') }}" method="get"> <label>Other URL: - <input name="results_url" placeholder="http://example.com/liveresults"> + <input name="results_url" placeholder="example.com/liveresults"> </label> <input type="submit" value="Go!"> </form> diff --git a/templates/live.html b/templates/live.html index 9280dfeb8dd69b70c7a7e28650c017fc19029439..f124ee6a9a7480ae79520f6421b73f7c750ecede 100644 --- a/templates/live.html +++ b/templates/live.html @@ -1,4 +1,7 @@ {% extends "base.html" %} +{% block extra_head %} + <meta http-equiv="refresh" content="60; URL={{ url_for('live') }}"> +{% endblock extra_head %} {% block content %} <header> <span class="back-to-home"><a href="{{ url_for('index') }}">Back to Home</a></span>