import codecs
class track():
- def __init__(self, length, title, path):
+ def __init__(self, length, title, path, attrs=None):
self.length = length
self.title = title
self.path = path
+ self.attrs = attrs
# # # song info lines are formatted like:
line = line.strip()
if line.startswith('#EXTINF:'):
# pull length and title from #EXTINF line
- length,title=line.split('#EXTINF:')[1].split(',',1)
+ prefix,title=line.split('#EXTINF:')[1].split(',',1)
+ title=title.strip()
+ length,attrstr=prefix.split(' ',1)
+ attrs={}
+
+ while attrstr:
+
+ attrstr=attrstr.strip()
+ key,tail=attrstr.split('=',1)
+ tail=tail[1:]
+ value,attrstr=tail.split('"',1)
+ attrstr=attrstr.strip()
+ attrs[key]=value
+
title=title.decode('string_escape')
- song=track(length,title,None)
+ song=track(length,title,None,attrs)
elif (len(line) != 0):
# pull song path from all other, non-blank lines
song.path=line