49 lines
953 B
Python
49 lines
953 B
Python
# Bryan Schumaker (8 / 12 / 2010)
|
|
|
|
get = dict.get
|
|
|
|
class TagNode:
|
|
def __init__(self):
|
|
pass
|
|
|
|
def insert(self, tag_list, tags, audio, filepath):
|
|
self.artist = tags.artist
|
|
self.album = tags.album
|
|
self.title = tags.title
|
|
self.year = tags.year
|
|
|
|
self.filepath = filepath
|
|
self.playcount = 0
|
|
self.length = audio.length
|
|
|
|
def sort(self, level):
|
|
pass
|
|
|
|
|
|
class Tree(dict):
|
|
def __init__(self):
|
|
dict.__init__(self)
|
|
self.sorted_keys = None
|
|
|
|
def sort(self, level=0):
|
|
self.sorted_keys = self.keys()
|
|
self.sorted_keys.sort()
|
|
space = ' '*level
|
|
for key in self.sorted_keys:
|
|
self[key].sort(level+1)
|
|
|
|
def insert(self, tag_list, tags, audio, filepath):
|
|
if len(tag_list) == 0:
|
|
return
|
|
global get
|
|
global insert
|
|
tag = tag_list[0]
|
|
node = get(self, tag, None)
|
|
if node == None:
|
|
if len(tag_list) == 1:
|
|
node = TagNode()
|
|
else:
|
|
node = Tree()
|
|
self[tag] = node
|
|
node.insert(tag_list[1:], tags, audio, filepath)
|