csc-industry

This commit is contained in:
Jeremy Roman 2011-07-22 21:26:08 -04:00
parent ab539d4c74
commit 2baff0f469
5 changed files with 52 additions and 2 deletions

View File

@ -2,7 +2,7 @@ SHELL = umask 002; exec /bin/sh
FILES = events.ics events.atom news.atom index.html stats.html \
favicon.ico default.css csclub.der csclub.pem robots.txt
SUBDIRS = about events office news services media buttons logos flash library
SUBDIRS = about events office news services media buttons logos flash library industry
include common.mk

4
industry/.htaccess Normal file
View File

@ -0,0 +1,4 @@
AddHandler cgi-script .cgi
Options +Indexes +ExecCGI
RewriteEngine On
RewriteRule ^$ /mailman/listinfo/csc-industry [R]

3
industry/Makefile Normal file
View File

@ -0,0 +1,3 @@
FILES = .htaccess archives.cgi
RELDIR = industry/
include ../common.mk

42
industry/archives.cgi Executable file
View File

@ -0,0 +1,42 @@
#!/usr/bin/env python
import os
from md5 import md5
os.umask(0027)
ARCHIVE_LIST = 'csc-industry'
ARCHIVE_MBOX = '/var/lib/mailman/archives/private/%s.mbox/%s.mbox' % (ARCHIVE_LIST, ARCHIVE_LIST)
ARCHIVE_PCK = '/tmp/%s-%s.pck' % (ARCHIVE_LIST, md5(os.path.abspath(__file__)).hexdigest())
try:
mbox_mtime = os.stat(ARCHIVE_MBOX).st_mtime
except:
print 'Content-Type: text/plain\r\n\r\nUnable to stat archive.'
exit()
try:
stat = os.stat(ARCHIVE_PCK)
pickle_mtime = stat.st_mtime
if stat.st_uid != os.getuid():
pickle_mtime = 0
except:
pickle_mtime = 0
import pickle, json
if pickle_mtime < mbox_mtime:
import mailbox
mbox = mailbox.UnixMailbox(open(ARCHIVE_MBOX, 'r'))
messages = []
for msg in mbox:
messages.append({
'subject': msg['subject'],
'date': msg['date'],
'from': msg['from']
})
pck = open(ARCHIVE_PCK, 'w')
pickle.dump(messages, pck)
else:
pck = open(ARCHIVE_PCK, 'r')
messages = pickle.load(pck)
print 'Content-Type: application/json\r\n\r\n' + json.dumps(messages[-3:])

View File

@ -5,5 +5,6 @@
<directory title="Services">
<diritem title="Usage Agreement" href="machine_usage" />
<diritem title="Usage Agreement Summary" href="machine_usage_summary" />
<diritem title="Webmail" href="https://mail.csclub.uwaterloo.ca/" />
<!--diritem title="Webmail" href="https://mail.csclub.uwaterloo.ca/" /-->
<diritem title="csc-industry" href="/industry" />
</directory>