#!/usr/bin/env python """ homepage - Update the Pluvo Homepage Author: Sean B. Palmer, inamidst.com @@ Eventually this should be in Pluvo itself. """ import os.path, time, md5, shutil, glob filenames = [fn for fn in glob.glob('*.tar.gz') if not 'latest' in fn] stable = list(sorted(filenames)).pop() def formatnumber(n): parts = list(str(n)) for i in range((len(parts) - 3), 0, -3): parts.insert(i, ',') return ''.join(parts) def md5sum(fn): bufsiz = 2048 m = md5.new() f = open(fn, 'rb') while True: chunk = f.read(bufsiz) if not chunk: break m.update(chunk) f.close() return m.hexdigest() def main(): shutil.copyfile("index.html", "../odds/attic/homepage.html.bak") # @sh "cp index.html ../odds/attic/homepage.html.bak" f = open("index.html") lines = list(f.readlines()) f.close() # lines = { @lines } latest = False f = open('index.html', 'w') for line in lines: if line.startswith(' '): first = line[:line.find('(')+1] third = line[line.find(')'):] mtime = os.path.getmtime('pluvo-latest.tar.gz') day = time.strftime('%Y-%m-%d', time.gmtime(mtime)) f.write(first + day + third) latest = True elif line.startswith('
  • Size:'): first = line[:line.find(': ')+2] third = line[line.find(' bytes'):] if latest: size = os.path.getsize('pluvo-latest.tar.gz') else: size = os.path.getsize(stable) size = formatnumber(size) f.write(first + size + third) elif line.startswith('
  • MD5:'): first = line[:line.find(': ')+2] third = line[line.find('
  • '):] if latest: md5hash = md5sum('pluvo-latest.tar.gz') else: md5hash = md5sum(stable) f.write(first + md5hash + third) elif line.startswith('
    %s\n' % (stable, stable)) latest = False else: f.write(line) if __name__ == '__main__': main()