curds: Replace new-track notification with TrackAdded publisher
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
4ce1e33fe4
commit
e73416a2e1
|
@ -106,7 +106,6 @@ def reset():
|
|||
Root.reset()
|
||||
Track = None
|
||||
Current = [ Root.lookup("Collection") ]
|
||||
library.reset()
|
||||
init()
|
||||
|
||||
def init():
|
||||
|
|
|
@ -14,15 +14,13 @@ class LibraryPlaylist(playlist.Playlist):
|
|||
def __init__(self, path):
|
||||
playlist.Playlist.__init__(self, path, icon=LIBRARY_ICON, sort=LIBRARY_SORT)
|
||||
self.lib = trackdb.add_path(path)
|
||||
trackdb.library.TrackAdded.register(self.thread_add)
|
||||
|
||||
def scan(self):
|
||||
self.lib.scan()
|
||||
|
||||
def thread_add(self, track, lib):
|
||||
def new_track(self, track, lib):
|
||||
if lib == self.lib:
|
||||
self.add(track)
|
||||
notify.notify("new-track", track, lib)
|
||||
|
||||
|
||||
class LibraryNode(tree.ETree):
|
||||
|
@ -42,8 +40,5 @@ def join():
|
|||
for lib in trackdb.library_paths:
|
||||
lib.join()
|
||||
|
||||
def reset():
|
||||
trackdb.reset()
|
||||
|
||||
def stop():
|
||||
pass
|
||||
|
|
|
@ -45,11 +45,11 @@ class TestArtistPlaylist(unittest.TestCase):
|
|||
def test_artist_node_reset(self):
|
||||
anode = artist.ArtistNode()
|
||||
anode.children.append(42)
|
||||
notify.cancel("new-track", anode.new_track)
|
||||
trackdb.library.TrackAdded.unregister(anode.new_track)
|
||||
|
||||
anode.reset()
|
||||
self.assertEqual(len(anode.children), 0)
|
||||
self.assertIn((anode.new_track, False), notify.events["new-track"])
|
||||
self.assertIn(anode.new_track, trackdb.library.TrackAdded.subscribers)
|
||||
|
||||
def test_artist_playlist_alloc(self):
|
||||
anode = artist.ArtistPlaylist("Test Playlist", artist.ARTIST_ICON)
|
||||
|
|
|
@ -38,13 +38,13 @@ class TestCollectionPlaylist(unittest.TestCase):
|
|||
plist.list.append(42)
|
||||
plist.random = True
|
||||
plist.loop = False
|
||||
notify.cancel("new-track", plist.new_track)
|
||||
trackdb.library.TrackAdded.unregister(plist.new_track)
|
||||
|
||||
plist.reset()
|
||||
self.assertEqual(len(plist), 0)
|
||||
self.assertFalse(plist.random)
|
||||
self.assertTrue(plist.loop)
|
||||
self.assertIn((plist.new_track, False), notify.events["new-track"])
|
||||
self.assertIn(plist.new_track, trackdb.library.TrackAdded.subscribers)
|
||||
|
||||
def test_collection_loop(self):
|
||||
plist = special.CollectionPlaylist()
|
||||
|
|
|
@ -49,11 +49,11 @@ class TestDecadePlaylist(unittest.TestCase):
|
|||
def test_decade_node_reset(self):
|
||||
dnode = decade.DecadeNode()
|
||||
dnode.children.append(42)
|
||||
notify.cancel("new-track", dnode.new_track)
|
||||
trackdb.library.TrackAdded.unregister(dnode.new_track)
|
||||
|
||||
dnode.reset()
|
||||
self.assertEqual(len(dnode.children), 0)
|
||||
self.assertIn((dnode.new_track, False), notify.events["new-track"])
|
||||
self.assertIn(dnode.new_track, trackdb.library.TrackAdded.subscribers)
|
||||
|
||||
def test_decade_playlist_alloc(self):
|
||||
dnode = decade.DecadePlaylist("Test Decade", decade.DECADE_ICON)
|
||||
|
|
|
@ -64,8 +64,8 @@ class TestGenrePlaylist(unittest.TestCase):
|
|||
gnode = genre.GenreNode()
|
||||
plist = playlist.Playlist("Test Playlist")
|
||||
gnode.insert_child(plist)
|
||||
notify.cancel("new-track", gnode.new_track)
|
||||
trackdb.library.TrackAdded.unregister(gnode.new_track)
|
||||
|
||||
gnode.reset()
|
||||
self.assertEqual(gnode.n_children(), 0)
|
||||
self.assertIn((gnode.new_track, False), notify.events["new-track"])
|
||||
self.assertIn(gnode.new_track, trackdb.library.TrackAdded.subscribers)
|
||||
|
|
|
@ -14,7 +14,6 @@ test_album = os.path.abspath("./trier/Test Album")
|
|||
|
||||
class TestLibraryPlaylist(unittest.TestCase):
|
||||
def setUp(self):
|
||||
library.reset()
|
||||
notify.clear()
|
||||
trak.reset()
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@ from .. import trak
|
|||
from .. import tree
|
||||
import os
|
||||
import random
|
||||
import trackdb
|
||||
import unittest
|
||||
|
||||
test_album = os.path.abspath("./trier/Test Album")
|
||||
|
@ -21,7 +22,6 @@ test_library = os.path.abspath("./trier/Test Library")
|
|||
class TestPlaylistRoot(unittest.TestCase):
|
||||
def setUp(self):
|
||||
trak.reset()
|
||||
library.reset()
|
||||
notify.register("next-track", self.on_next_track)
|
||||
notify.register("playlist-changed", self.on_playlist_changed)
|
||||
|
||||
|
@ -36,8 +36,7 @@ class TestPlaylistRoot(unittest.TestCase):
|
|||
self.cb_change = [ ]
|
||||
|
||||
def tearDown(self):
|
||||
notify.cancel("new-track", self.playman.lookup("Collection").add)
|
||||
notify.cancel("new-track", self.playman.lookup("Genres").new_track)
|
||||
trackdb.reset()
|
||||
notify.cancel("next-track", self.on_next_track)
|
||||
notify.register("playlist-changed", self.on_playlist_changed)
|
||||
library.stop()
|
||||
|
|
|
@ -27,7 +27,7 @@ class TestTags(unittest.TestCase):
|
|||
self.assertEqual(trak.trak_db, { })
|
||||
|
||||
def test_trak_lookup(self):
|
||||
notify.register("new-track", self.on_new_track)
|
||||
trackdb.library.TrackAdded.register(self.on_new_track)
|
||||
path = test_tracks / "01 - Test Track.ogg"
|
||||
|
||||
track = trak.lookup(path, self.lib)
|
||||
|
|
|
@ -16,7 +16,7 @@ def lookup(path, lib):
|
|||
ret = trackdb.track.Track(tid, pathlib.Path(path))
|
||||
lib.tracks[tid] = ret
|
||||
trak_db[path] = ret
|
||||
notify.notify("new-track", ret, lib)
|
||||
trackdb.library.TrackAdded.publish(ret, lib)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return None
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
from . import notify
|
||||
from . import sort
|
||||
import threading
|
||||
import trackdb
|
||||
|
||||
class ETree:
|
||||
def __init__(self, name="", icon=""):
|
||||
|
@ -39,7 +40,7 @@ class ETree:
|
|||
|
||||
def __new_track__(self):
|
||||
if self.new_track != ETree.new_track:
|
||||
notify.register("new-track", self.new_track)
|
||||
trackdb.library.TrackAdded.register(self.new_track)
|
||||
|
||||
def __nth_child__(self, n):
|
||||
return self.children[n] if -1 < n < len(self.children) else None
|
||||
|
|
|
@ -5,7 +5,8 @@ class Publisher:
|
|||
self.subscribers = set()
|
||||
|
||||
def publish(self, *args):
|
||||
for func in self.subscribers:
|
||||
funcs = self.subscribers.copy()
|
||||
for func in funcs:
|
||||
func(*args)
|
||||
|
||||
def register(self, func):
|
||||
|
|
Loading…
Reference in New Issue