|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
|
|
import cgi, jinja2, os, json, re
|
|
|
|
import cgitb; cgitb.enable()
|
|
|
|
from jinja2 import Template
|
|
|
|
|
|
|
|
# Directory => ITEMS list (all files with a timestamp name, grouped)
|
|
|
|
path = "/var/www/static/gait"
|
|
|
|
try:
|
|
|
|
ff = os.listdir(path)
|
|
|
|
except OSError:
|
|
|
|
ff = []
|
|
|
|
tpat = re.compile(r"^(\d\d\d\d)-(\d\d)-(\d\d)-(\d\d)-(\d\d)-(\d\d)")
|
|
|
|
items = {}
|
|
|
|
for f in ff:
|
|
|
|
base, ext = os.path.splitext(f)
|
|
|
|
ext = ext[1:]
|
|
|
|
m = tpat.match(f)
|
|
|
|
if m:
|
|
|
|
t = m.group(0)
|
|
|
|
if t not in items:
|
|
|
|
items[t] = {}
|
|
|
|
items[t][ext] = f
|
|
|
|
|
|
|
|
items = [items[key] for key in sorted(items, reverse=True)]
|
|
|
|
for i in items[10:]:
|
|
|
|
for f in i.items():
|
|
|
|
for ext in f:
|
|
|
|
fp = os.path.join(path, f[ext])
|
|
|
|
try:
|
|
|
|
os.unlink(fp)
|
|
|
|
except IOError as e:
|
|
|
|
print ("Error deleting", e)
|
|
|
|
pass
|
|
|
|
# dump the data (debugging)
|
|
|
|
# print "Content-type: text/plain"
|
|
|
|
# print ""
|
|
|
|
# print json.dumps(items, indent=2)
|
|
|
|
|
|
|
|
# Output template with items
|
|
|
|
print "Content-type: text/html"
|
|
|
|
print ""
|
|
|
|
print Template(u"""<html>
|
|
|
|
<head>
|
|
|
|
<title>ADOPT A WALK</title>
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<link rel="stylesheet" type="text/css" href="../styles/main.css">
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div id="wrappper">
|
|
|
|
|
|
|
|
<header>
|
|
|
|
<img src="../images/headertr3.png" width="100%"/>
|
|
|
|
</header>
|
|
|
|
|
|
|
|
<div class="firstline">
|
|
|
|
<p> Here you can find footage of your walks.</p>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<img src="../images/camera.png" />
|
|
|
|
|
|
|
|
<div class="secondline">
|
|
|
|
<p> Steal a walk from another person's video. Download it. </p>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="thirdline">
|
|
|
|
<p> Promise me, you're gonna start using this walk for the rest of the day. </p>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<img src="../images/cover.png" />
|
|
|
|
|
|
|
|
|
|
|
|
<div class="movies">
|
|
|
|
{% for i in items %}
|
|
|
|
<a href="/static/gait/{{i.mp4}}"><img src="/static/gait/{{i.jpg}}" /></a>
|
|
|
|
<p>{{i.mp4}}</p>
|
|
|
|
{% endfor %}
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</body>
|
|
|
|
</html>""").render(items=items).encode("utf-8")
|