expoweb/noinfo/make-folklist.py

189 lines
7.0 KiB
Python
Executable File

#!/usr/bin/python
import sys, string, re
headcount = 0
pics = 0
allyears = 0
recordholders = []
output = ""
lines = sys.stdin.readlines()
headcounts_byyear = [0]*(len(lines[0].split(","))-4)
for r in lines[1:]:
r = r.replace("\n","")
r = r.replace("\r", "")
cells = r.split(",") # chomp newline
(name, guest, vfho, mug) = cells[:4]
years = cells[4:]
expos_caving = len([t for t in years if t == "1"])
expos_notcaving = len([t for t in years if t == "-1"])
if(expos_caving == 0 and expos_notcaving == 0):
sys.stdout.write("Error for", name)
sys.exit(1)
if(expos_caving and name != 'Rover Richardson'): headcount += 1
if mug: pics +=1
output += '<tr><td>'
if expos_caving == 0: output += '<span class="didntcave">'
output += name[1:-1].replace('""', '"')
if expos_caving == 0: output += '</span>'
output += '</td><td>'
if guest: output += '&sect;'
output += '</td><td>'
if vfho: output += '&curren;'
output += '</td><td>'
if mug: output += '<a href=%s><img alt=":-)" src="i/mug.png" /></a>' % mug
output += '&nbsp;</td>'
for y in xrange(len(years)):
if(years[y]):
m = str(76 + y)[-2:]
if(years[y]=='-1'):
m = '<span class="didntcave">'+ m + '</span>'
else:
try:
headcounts_byyear[y] += 1
except IndexError:
sys.stderr.write(repr(r) +":::"+ str(y) + "\n")
raise
output += '<td class="nonempty">' + m + '</td>'
else:
output += '<td></td>'
if(expos_notcaving):
output += '<td style="text-align: right">%d + <span class="didntcave">%d</span></td></tr>\n' % (expos_caving, expos_notcaving)
else:
output += '<td style="text-align: right">%d</td></tr>\n' % expos_caving
recordholders.append((expos_caving, name))
def collapse(m):
n = (m.span()[1]-m.span()[0]) / 9
if(n == 1): return m.group()
else: return '<td colspan="%d"></td>' % n
#output = re.sub(r'(<td></td>)+',collapse, output)
print """
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>CUCC's Austria expeditions: Members</title>
<link rel="stylesheet" type="text/css" href="../css/main2.css" />
<style type="text/css">
<!--
.didntcave { color: #dd0000 }
table.fancy { border-collapse: collapse; border: 2px solid black }
table.fancy td { border: 1px solid black; padding: 2pt }
table.fancy td.nonempty { background: #eee }
-->
</style>
</head>
<body>
<!-- DO NOT EDIT THIS DOCUMENT BY HAND! It is automatically generated. -->
<h1>CUCC members and guests in Austria 1976 to present</h1>
<p>Being a pretty much complete list of all the personnel on %d CUCC
expeditions (there was no expo in 1986), together with the total number of
expeditions each has attended and the total number of people on each expedition.
Names for the current year (as updated before departure) are always subject
to revision in the light of reality ! People sometimes get missed out because
no-one has told me their surnames :-( <!-- Sharon in 2000 --></p>
<p>Qualification for inclusion involves some active contribution to the
expedition such as going underground, surface surveying or sherpa-ing, or
diving for resurgences. Years marked in <span style="didntcave">red</span>
indicate some certainty that the person didn't go underground that year.
Persons marked in <span class="didntcave">red</span> are thought to have never
been underground on expo at all. Note that diving in <span lang="de-at">Altausseer
See</span> for the resurgence has been counted as underground:- it certainly
counts as effort expended in the pursuit of speleology!</p>
<p>In the table, a section mark (&sect;) indicates someone who was an
individual guest of CUCC or of a CUCC member, or who was a member of UBSS when
they were present as a guest club in 1981 and 1982. I don't guarantee to have
got all such people correctly marked. Similarly, the currency symbol (&curren;)
marks those who are (or were) individual members of the local Austrian group
<span lang="de-at">Verein f&uuml;r H&ouml;hlenkunde im Obersteier</span>. A
smiley or face icon indicates a link to a mugshot (and brief notes) in our
Rogues' Gallery - at present a few of these are still just raw jpegs with no
html (and therefore no links), so you may have to use the back button to return
to this page. Just one of the listed members is a vehicle - no prizes for
guessing which one without looking at the photos :-)</p>
<p>The table doesn't include the local cavers who have caved with us at various
times. These include particularly Karl Gaisberger, Gunter Graf, Sepp
Steinberger and Robert Seebacher <a href="i/robert.jpg"><img alt=":-)"
src="i/mug.png" /></a>.</p>
<hr /><table class="fancy">
""" % len([t for t in headcounts_byyear if t > 0])
print output
print "<tr><td colspan=4><strong>Expo head count</strong></td>",
for y in headcounts_byyear:
print '<td style="text-align: right">%d</td>' % y,
print """
<td></td></tr>
</table>
<hr />
<p>%d people have
taken part in expo altogether (not counting non-combatants or vehicles(!)),
of whom %d have their pictures on the site so far.</p>
<p>Although few take such statistics seriously, the most dedicated expoers are """ % (headcount, pics)
recordholders.sort()
recordholders.reverse()
k = 2
while recordholders[k + 1][0] == recordholders[k][0]:
k = k + 1
print "%s (%d expos)," % (recordholders[0][1][1:-1],recordholders[0][0])
for r in recordholders[1:k]:
print "%s (%d)," % (r[1][1:-1],r[0]),
print """and %s (%d). Julian Haines and Brian Outram share the record for
consecutive expos (9 each). A more obscure record was set by Mark Dougherty in 2004:
longest interval between expos (13 years).""" % (recordholders[k][1][1:-1],recordholders[k][0])
print """<p>Outside-expo caving has started, with Becka Lawson, Julian Todd and Wookey
joining various Arge trips in recent years. However, the much talked-about
winter expedition/holiday has still not happened, though there is still a lot
to be said for it. With draughts reversed in the cold, top entrances should
be more obvious and skiing would make a nice change from sitting watching the
rain. Some entrances would inevitably be blocked by snow but others seem to
remain open all winter.</p>
<hr />
<!-- LINKS -->
<ul id="links">
<li>Back to <a href="../../index.htm">CUCC Home page</a></li>
<li><b>Main Indices:</b>
<ul>
<li><a href="../infodx.htm"><b>Index</b> to Expo</a> information pages</li>
<li><a href="../areas.htm">Description of CUCC's area</a> and split to subareas</li>
<li>Full <a href="../indxal.htm">Index to cave descriptions</a> in area 1623</li>
<li>Adjacent area <a href="../1626/index.html">1626</a></li>
<li>List of (links to) <a href="../pubs.htm">published reports and logbooks</a></li>
</ul></li>
<li><b>Pictures:</b>
<ul>
<li><a href="../gall0.htm">Text only Index</a></li>
<li><a href="../gallery/0.htm">Index pages (with thumbnails)</a></li>
</ul></li>
<li>Other info:
<ul>
<li>Table of <a href="../folk/index.htm">members of CUCC expeditions</a> 1976-present</li>
<li><a href="../others/index.htm">Other groups</a> who have worked in the area.</li>
</ul></li></ul>
</body>
</html>"""