curds: Allow passing values to node.sort_key()
So we can compare keys that have undergone the same transformation Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
53ae9ccb6c
commit
ce7b7a4f67
|
@ -15,8 +15,9 @@ class LibraryPlaylist(playlist.Playlist):
|
|||
def scan(self):
|
||||
library_thread.push(self.thread_scan)
|
||||
|
||||
def sort_key(self):
|
||||
return self.name.strip("/").split("/")
|
||||
def sort_key(self, path=None):
|
||||
key = self.name if path == None else path
|
||||
return key.strip("/").split("/")
|
||||
|
||||
def thread_add(self, path):
|
||||
self.add(tags.Track.lookup(path))
|
||||
|
|
|
@ -82,9 +82,8 @@ class PlaylistNode:
|
|||
return self.append_child(child)
|
||||
|
||||
def lookup(self, name):
|
||||
name = self.__normalize__(name)
|
||||
for node in self.children:
|
||||
if node.name == name:
|
||||
if node.sort_key() == node.sort_key(name):
|
||||
return node
|
||||
return None
|
||||
|
||||
|
@ -113,8 +112,8 @@ class PlaylistNode:
|
|||
nodes.pop(id(child), None)
|
||||
self.children.clear()
|
||||
|
||||
def sort_key(self):
|
||||
return sort.key(self.name)
|
||||
def sort_key(self, name=None):
|
||||
return sort.key(self.name if name == None else name)
|
||||
|
||||
def walk(self, root=False):
|
||||
if self.parent != None or root == True:
|
||||
|
|
|
@ -57,6 +57,7 @@ class TestLibraryPlaylist(unittest.TestCase):
|
|||
plist = library.LibraryPlaylist(test_library)
|
||||
key = test_library.strip("/").split("/")
|
||||
self.assertEqual(plist.sort_key(), key)
|
||||
self.assertEqual(plist.sort_key("/a/b/c/"), [ "a", "b", "c" ])
|
||||
|
||||
def test_library_thread_reset(self):
|
||||
self.assertTrue(library.library_thread.is_alive())
|
||||
|
|
|
@ -282,6 +282,7 @@ class TestPlaylistNode(unittest.TestCase):
|
|||
self.assertEqual(a.sort_key(), [ "test", "node" ])
|
||||
a.name = "A Test Node Cbä"
|
||||
self.assertEqual(a.sort_key(), [ "test", "node", "cba" ])
|
||||
self.assertEqual(a.sort_key("Test Node!"), [ "test", "node" ])
|
||||
|
||||
def test_node_walk(self):
|
||||
root = node.PlaylistNode()
|
||||
|
|
Loading…
Reference in New Issue
Block a user