#!/usr/bin/python2
import os
import mutagen.oggvorbis
import mutagen.mp3
import mimetypes
g_html_header="""
Up
"""
g_html_footer="""
"""
g_html_title="""%s [File link]
"""
g_html_item="""
"""
g_root_html_header="""
Ahlamon Rehearsal
Ahlamon Rehearsal
"""
g_root_html_footer="""
"""
g_root_html_item="""
%s
"""
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 None
def 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 None
def 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 None
def main():
print "Hello!"
generateRootIndex(g_root)
if __name__ == "__main__":
main()