rendered paste body#!/usr/bin/python2import osimport mutagen.oggvorbisimport mutagen.mp3import mimetypesg_html_header="""<html><meta http-equiv="Content-Type" content="text/html; charset=utf8"><body><a href=..>Up</a><br />"""g_html_footer="""</body></html>"""g_html_title="""%s <a href=%s>[File link]</a><br />"""g_html_item="""<audio src="%s" controls="controls" preload="metadata">Your browser does not support the audio element.</audio><br />"""g_root_html_header="""<html><meta http-equiv="Content-Type" content="text/html; charset=utf8"><title>Ahlamon Rehearsal</title><body><h1>Ahlamon Rehearsal</h1>"""g_root_html_footer="""</body></html>"""g_root_html_item="""<a href=%s>%s</a><br />"""g_index_name="index.html"g_root="/home/goth/rehearsal.ahlamon.org"def getTitle(track): mtype = mimetypes.guess_type(track) if mtype[0] == "audio/ogg": metadata = mutagen.oggvorbis.Open(track) try: artist = metadata['artist'][0].encode('utf_8') except: artist = "Unknown Artist" try: title = metadata['title'][0].encode('utf_8') except: title = "Unknown Title" return "%s - %s" % (artist, title) elif mtype[0] == "audio/mpeg": metadata = mutagen.mp3.Open(track) try: artist = metadata['TPE1'][0].encode('utf_8') except: artist = "Unknown Artist" try: title = metadata['TIT2'][0].encode('utf_8') except: title = "Unknown Title" return "%s - %s" % (artist, title) else: print "%s - unknown mimetype, cannot process" return Nonedef generateRehearsalIndex(rehearsal): items = os.listdir(rehearsal) items.sort() os.chdir(rehearsal) index = open(g_index_name, 'w') index.write(g_html_header) for i in items: title = getTitle(i) if title == None: continue index.write(g_html_title % (title, i)) index.write(g_html_item % i) index.write(g_html_footer) index.close() os.chdir(os.pardir) return Nonedef generateRootIndex(rootDir): items = os.listdir(rootDir) items.sort() subDirs = [] index = open(g_index_name, 'w') index.write(g_root_html_header) for i in items: if os.path.isdir(i): subDirs.append(i) for i in subDirs: print "Subdirectory: %s" % i index.write(g_root_html_item % (i, i)) generateRehearsalIndex(i) index.write(g_root_html_footer) index.close() return Nonedef main(): print "Hello!" generateRootIndex(g_root)if __name__ == "__main__": main()