import csv, urllib, time, datetime, operator, gzip, shutil, Zopfli from time import localtime, strftime # retreive csv data from google docs # data = urllib.urlopen("https://docs.google.com/a/sooper.org/spreadsheet/pub?key=0AtnmrDi58ubkdEt5cUtmMndoalNpSWdmYjFuQjhKTFE&single=true&gid=0&output=csv") data = urllib.urlopen("https://docs.google.com/a/sooper.org/spreadsheets/d/1BF8fMUb6OixAlgis2sZq7j_HxltlGswjd6lanvsdrpI/export?format=csv&gid=0") # persist to csv c = open('moderation.csv', 'w') c.write(data.read()) c.close() data = open('moderation.csv', 'r') collection = csv.reader(data, delimiter=',', quotechar='"') rowcount = len(list(collection)) - 1 data.seek(0) # reset file iterator after determining number or rows collection.next() collection = sorted(collection, key=lambda k: (k[0].lower(), k[2].lower(), k[1].lower()), reverse=False) data.close() dstamp = datetime.datetime.utcfromtimestamp(time.time()) updated = dstamp.strftime('%Y-%m-%dT%H:%M:%S.000Z') output = '' output += '' # output += '' output += '' output += '' output += 'moderation » ' + str(rowcount) + ' total » updated @ ' + updated + '' output += '' output += '' output += '' output += '' output += '' output += '' prior = '' for row in collection: output += '' artist = ' 12 and len(row[12]): if '=' in row[12]: artist += ' class="a w">' + row[0].replace('&', '&') + '' else: artist += ' class="a w">' + row[0].replace('&', '&') + '' else: artist += ' class=a>' + row[0].replace('&', '&') prior = row[0] output += artist output += '
moderation cd collection
ArtistTitleYearLabelSerialSearch
' + row[1].replace('&', '&') more = '' if len(row) > 14 and len(row[14]): if 'Split' in row[14]: more += 'Ø' if 'Limited' in row[14]: more += 'Γ' if 'Box' in row[14]: more += 'ß' if 'Double' in row[14]: more += 'Ð' if 'Multimedia' in row[14]: more += 'Μ' if 'Reissue' in row[14]: more += 'Ζ' if 'Amazon' in row[14]: more += '€' if 'iTunes' in row[14]: more += '€' if 'DRM' in row[14]: more += '©' if 'MP3' in row[14] and not 'Amazon' in row[14] and not 'iTunes' in row[14]: more += 'Γ' if 'Controlled' in row[14]: more += '©' if 'Soundtrack' in row[14]: more += '§' if 'Paypal' in row[14]: more += '¢' output += more output += '' + row[2] output += '' + row[5] output += '' + row[7].replace('&', '&') meta = ' 9 and len(row[9]): meta += ' data-upc=' + row[9] if len(row) > 11 and len(row[11]): meta += ' data-asin=' + row[11] meta += '>' output += meta output += '
' output += '
' + str(rowcount) + '
' output += '''
SVG | DOC | LIST
''' o = open('index.html', 'w') o.write(output) o.close() f = open('index.html') # text file to compress t = gzip.GzipFile('index.htmlz', 'wb') # archive file shutil.copyfileobj(f, t) f.close() Zopfli.compress_file('index.html', 'index.html.gz') f = open('moderation.css') # text file to compress t = gzip.GzipFile('moderation.cssz', 'wb') # archive file shutil.copyfileobj(f, t) f.close() Zopfli.compress_file('moderation.css', 'moderation.css.gz')