You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
2.0 KiB
Python

#!/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")