ocarina/libsaria/collection/tree.py

57 lines
1.2 KiB
Python

# Bryan Schumaker (8 / 12 / 2010)
get = dict.get
class TagNode(dict):
def __init__(self):
dict.__init__(self)
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
#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)