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

Commit

Permalink
First commit: URL status pinger
Browse files Browse the repository at this point in the history
  • Loading branch information
hltbra committed Jul 25, 2012
0 parents commit c7a819d
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 0 deletions.
29 changes: 29 additions & 0 deletions pinger.py
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1,29 @@
from flask import Flask, render_template
import datetime
import socket
import requests


app = Flask(__name__)

@app.route('/')
def home():
sites = open("sites.txt").read().split()
result = []
for site in sites:
try:
response = requests.get(site, timeout=1, allow_redirects=True)
assert response.text != ''
assert response.status_code == 200
except (requests.exceptions.Timeout, socket.timeout, AssertionError) as err:
result.append((site, "fail"))
else:
result.append((site, "ok"))
now = datetime.datetime.now()
return render_template('pinger.html', result=result, last_update=now)


if __name__ == '__main__':
app.run(debug=True)


2 changes: 2 additions & 0 deletions requirements.txt
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1,2 @@
requests
flask
1 change: 1 addition & 0 deletions sites.txt
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1 @@
http://globo.com
45 changes: 45 additions & 0 deletions templates/pinger.html
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1,45 @@
<!DOCTYPE html>
<html>
<head>
<style>
table {
border-collapse: collapse;
}

td {
border: solid #888;
border-width: 1px;
font-weight: bold;
padding: 0.75em 1.2em;
position: relative;
}
.ok {
background-color: green;
}
.fail {
background-color: red;
}
.status {
font-size: 20px;
}
</style>
<meta http-equiv="Refresh" content="60"/>
</head>
<body>
<div class="content">
<table>
<tr>
<td>Site</td>
<td>Status</td>
</tr>
{% for site, status in result %}
<tr>
<td><a href="{{ site }}">{{ site }}</a></td>
<td class="status {{ status }}"></td>
</tr>
{% endfor %}
</table>
Last update: {{ last_update }}
</div>
</body>
</html>

0 comments on commit c7a819d

Please sign in to comment.