本文整理汇总了Python中quodlibet.util.collection.Playlist类的典型用法代码示例。如果您正苦于以下问题:Python Playlist类的具体用法?Python Playlist怎么用?Python Playlist使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Playlist类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: setUp
def setUp(self):
# Testing locally is VERY dangerous without this...
self.assertTrue(_TEMP_DIR in PLAYLISTS or os.name == "nt",
msg="Failing, don't want to delete %s" % PLAYLISTS)
try:
shutil.rmtree(PLAYLISTS)
except OSError:
pass
mkdir(PLAYLISTS)
self.lib = quodlibet.browsers.playlists.library = SongLibrary()
self.lib.librarian = SongLibrarian()
all_songs = SONGS + [self.ANOTHER_SONG]
for af in all_songs:
af.sanitize()
self.lib.add(all_songs)
self.big = pl = Playlist.new(PLAYLISTS, "Big", self.lib)
pl.extend(SONGS)
pl.write()
self.small = pl = Playlist.new(PLAYLISTS, "Small", self.lib)
pl.extend([self.ANOTHER_SONG])
pl.write()
PlaylistsBrowser.init(self.lib)
self.bar = PlaylistsBrowser(self.lib)
self.bar.connect('songs-selected', self._expected)
self.bar._select_playlist(self.bar.playlists()[0])
self.expected = None
开发者ID:mistotebe,项目名称:quodlibet,代码行数:32,代码来源:test_browsers_playlists.py
示例2: test_listlike
def test_listlike(s):
pl = Playlist(s.temp, "playlist")
pl.extend(NUMERIC_SONGS)
s.failUnlessEqual(NUMERIC_SONGS[0], pl[0])
s.failUnlessEqual(NUMERIC_SONGS[1:2], pl[1:2])
s.failUnless(NUMERIC_SONGS[1] in pl)
pl.delete()
开发者ID:Konzertheld,项目名称:quodlibet,代码行数:7,代码来源:test_util_collection.py
示例3: setUp
def setUp(self):
try:
shutil.rmtree(PLAYLISTS)
except OSError:
pass
mkdir(PLAYLISTS)
self.lib = quodlibet.browsers.playlists.library = SongLibrary()
self.lib.librarian = SongLibrarian()
all_songs = SONGS + [self.ANOTHER_SONG]
for af in all_songs:
af.sanitize()
self.lib.add(all_songs)
pl = Playlist.new(PLAYLISTS, "Big", self.lib)
pl.extend(SONGS)
pl.write()
pl = Playlist.new(PLAYLISTS, "Small", self.lib)
pl.extend([self.ANOTHER_SONG])
pl.write()
PlaylistsBrowser.init(self.lib)
self.bar = PlaylistsBrowser(self.lib)
self.bar.connect('songs-selected', self._expected)
self.bar._select_playlist(self.bar.playlists()[0])
self.expected = None
开发者ID:vrasidas,项目名称:quodlibet,代码行数:29,代码来源:test_browsers_playlists.py
示例4: test_duplicates
def test_duplicates(self):
pl = Playlist(self.temp, "playlist")
pl.extend(self.TWO_SONGS)
pl.extend(self.TWO_SONGS)
self.failUnlessEqual(len(pl), 4)
self.failUnless(pl.has_duplicates,
("Playlist has un-detected duplicates: %s "
% "\n".join([str(s) for s in pl._list])))
开发者ID:Konzertheld,项目名称:quodlibet,代码行数:8,代码来源:test_util_collection.py
示例5: test_make_dup
def test_make_dup(self):
p1 = Playlist.new(self.temp, "Does not exist")
p2 = Playlist.new(self.temp, "Does not exist")
self.failUnlessEqual(p1.name, "Does not exist")
self.failUnless(p2.name.startswith("Does not exist"))
self.failIfEqual(p1.name, p2.name)
p1.delete()
p2.delete()
开发者ID:Konzertheld,项目名称:quodlibet,代码行数:8,代码来源:test_util_collection.py
示例6: test_playlists_tag
def test_playlists_tag(self):
# Arguably belongs in _audio
songs = NUMERIC_SONGS
pl_name = "playlist 123!"
pl = Playlist(self.temp, pl_name)
pl.extend(songs)
for song in songs:
self.assertEquals(pl_name, song("~playlists"))
pl.delete()
开发者ID:Konzertheld,项目名称:quodlibet,代码行数:9,代码来源:test_util_collection.py
示例7: test_playlists_featuring
def test_playlists_featuring(s):
with s.wrap("playlist") as pl:
pl.extend(NUMERIC_SONGS)
playlists = Playlist.playlists_featuring(NUMERIC_SONGS[0])
s.failUnlessEqual(set(playlists), {pl})
# Now add a second one, check that instance tracking works
with s.wrap("playlist2") as pl2:
pl2.append(NUMERIC_SONGS[0])
playlists = Playlist.playlists_featuring(NUMERIC_SONGS[0])
s.failUnlessEqual(set(playlists), {pl, pl2})
开发者ID:bp0,项目名称:quodlibet,代码行数:10,代码来源:test_util_collection.py
示例8: test_internal_tags
def test_internal_tags(s):
pl = Playlist(s.temp, "playlist")
pl.extend(s.TWO_SONGS)
s.failIfEqual(pl.comma("~long-length"), "")
s.failIfEqual(pl.comma("~tracks"), "")
s.failIfEqual(pl.comma("~discs"), "")
s.failUnlessEqual(pl.comma("~foo"), "")
s.failUnlessEqual(pl.comma(""), "")
s.failUnlessEqual(pl.comma("~"), "")
s.failUnlessEqual(pl.get("~#"), "")
开发者ID:silkecho,项目名称:glowing-silk,代码行数:12,代码来源:test_util_collection.py
示例9: setup
def setup():
Playlist._remove_all()
for i in xrange(NUM_PLAYLISTS):
pls.append(Playlist(PLAYLISTS, "List %d" % (i+1)))
for i in xrange(NUM_SONGS):
a = ARTISTS[randint(0,2)]
t = "Song %d" % i
data = {"title": t, "artist":a, "~#tracknumber": i % 20,
"~filename": "%s.mp3" % t,
"~#filesize":randint(1000000,100000000)}
song = Fakesong(data)
library.append(song)
if not (i % SONGS_TO_PLAYLIST_SIZE_RATIO):
song["~included"] = "yes"
for j in range(PLAYLISTS_PER_PLAYLISTED_SONG):
pls[(i+j) % NUM_PLAYLISTS].append(song)
开发者ID:silkecho,项目名称:glowing-silk,代码行数:16,代码来源:test_playlist_tag_caching.py
示例10: __parse_playlist
def __parse_playlist(name, plfilename, files, library):
playlist = Playlist.new(PLAYLISTS, name, library=library)
songs = []
win = WaitLoadWindow(None, len(files), _("Importing playlist.\n\n%(current)d/%(total)d songs added."))
win.show()
for i, filename in enumerate(files):
try:
uri = URI(filename)
except ValueError:
if os.name == "nt":
filename = filename.decode("utf-8", "replace")
# Plain filename.
filename = os.path.realpath(os.path.join(os.path.dirname(plfilename), filename))
if library and filename in library:
songs.append(library[filename])
else:
songs.append(formats.MusicFile(filename))
else:
if uri.scheme == "file":
# URI-encoded local filename.
filename = os.path.realpath(os.path.join(os.path.dirname(plfilename), uri.filename))
if library and filename in library:
songs.append(library[filename])
else:
songs.append(formats.MusicFile(filename))
else:
# Who knows! Hand it off to GStreamer.
songs.append(formats.remote.RemoteFile(uri))
if win.step():
break
win.destroy()
playlist.extend(filter(None, songs))
return playlist
开发者ID:SimonLarsen,项目名称:quodlibet,代码行数:33,代码来源:util.py
示例11: test_playlist_plugin
def test_playlist_plugin(self):
pl = Playlist("foo", library=app.librarian)
pl.extend([AudioFile({"~filename": "/dev/null"})])
self.called_pl = None
self.called_songs = None
def proxy(songs, playlist=None):
self.called_pl = playlist
self.called_songs = songs
plugin = self.plugin()
plugin._handle_songs = proxy
# Test that as a Playlist plugin it delegates correctly
plugin.plugin_playlist(pl)
self.failUnless(self.called_songs)
self.assertEqual(self.called_pl, pl)
self.assertEqual(self.called_songs, pl.songs)
开发者ID:ZDBioHazard,项目名称:quodlibet,代码行数:17,代码来源:test_custom_commands.py
示例12: test_updating_aggregates_remove_songs
def test_updating_aggregates_remove_songs(s):
pl = Playlist(s.temp, "playlist")
pl.extend(NUMERIC_SONGS)
s.failUnless(pl.get("~#length"))
pl.remove_songs(NUMERIC_SONGS)
s.failIf(pl.get("~#length"))
开发者ID:Konzertheld,项目名称:quodlibet,代码行数:7,代码来源:test_util_collection.py
示例13: _on_new_playlist_activate
def _on_new_playlist_activate(self, item, songs):
parent = get_menu_item_top_parent(item)
title = Playlist.suggested_name_for(songs)
title = GetPlaylistName(qltk.get_top_parent(parent)).run(title)
if title is None:
return
playlist = FileBackedPlaylist.new(PLAYLISTS, title)
playlist.extend(songs)
PlaylistsBrowser.changed(playlist)
开发者ID:achadwick,项目名称:quodlibet,代码行数:9,代码来源:menu.py
示例14: _on_new_playlist_activate
def _on_new_playlist_activate(self, item, songs):
parent = get_menu_item_top_parent(item)
title = Playlist.suggested_name_for(songs)
title = self._get_new_name(parent, title)
if title is None:
return
playlist = FileBackedPlaylist.new(PLAYLISTS, title,
library=self.librarian)
playlist.extend(songs)
self._emit_new(playlist)
开发者ID:ZDBioHazard,项目名称:quodlibet,代码行数:10,代码来源:menu.py
示例15: __drag_data_received
def __drag_data_received(self, view, ctx, x, y, sel, tid, etime, library):
# TreeModelSort doesn't support GtkTreeDragDestDrop.
view.emit_stop_by_name('drag-data-received')
model = view.get_model()
if tid == DND_QL:
filenames = qltk.selection_get_filenames(sel)
songs = filter(None, map(library.get, filenames))
if not songs:
Gtk.drag_finish(ctx, False, False, etime)
return
try:
path, pos = view.get_dest_row_at_pos(x, y)
except TypeError:
playlist = Playlist.fromsongs(PLAYLISTS, songs, library)
GLib.idle_add(self.__select_playlist, playlist)
else:
playlist = model[path][0]
playlist.extend(songs)
PlaylistsBrowser.changed(playlist)
Gtk.drag_finish(ctx, True, False, etime)
else:
if tid == DND_URI_LIST:
uri = sel.get_uris()[0]
name = os.path.basename(uri)
elif tid == DND_MOZ_URL:
data = sel.get_data()
uri, name = data.decode('utf16', 'replace').split('\n')
else:
Gtk.drag_finish(ctx, False, False, etime)
return
name = name or os.path.basename(uri) or _("New Playlist")
uri = uri.encode('utf-8')
try:
sock = urllib.urlopen(uri)
f = NamedTemporaryFile()
f.write(sock.read())
f.flush()
if uri.lower().endswith('.pls'):
playlist = parse_pls(f.name, library=library)
elif uri.lower().endswith('.m3u'):
playlist = parse_m3u(f.name, library=library)
else:
raise IOError
library.add_filename(playlist)
if name:
playlist.rename(name)
PlaylistsBrowser.changed(playlist)
Gtk.drag_finish(ctx, True, False, etime)
except IOError:
Gtk.drag_finish(ctx, False, False, etime)
qltk.ErrorMessage(
qltk.get_top_parent(self),
_("Unable to import playlist"),
_("Quod Libet can only import playlists in the M3U "
"and PLS formats.")).run()
开发者ID:brunob,项目名称:quodlibet,代码行数:55,代码来源:main.py
示例16: test_updating_aggregates_extend
def test_updating_aggregates_extend(s):
pl = Playlist(s.temp, "playlist")
pl.extend(NUMERIC_SONGS)
old_length = pl.get("~#length")
old_size = pl.get("~#filesize")
# Double the playlist
pl.extend(NUMERIC_SONGS)
new_length = pl.get("~#length")
new_size = pl.get("~#filesize")
s.failUnless(new_length > old_length,
msg="Ooops, %d <= %d" % (new_length, old_length))
s.failUnless(new_size > old_size,
msg="Ooops, %d <= %d" % (new_size, old_size))
开发者ID:Konzertheld,项目名称:quodlibet,代码行数:16,代码来源:test_util_collection.py
示例17: test_write
def test_write(self):
pl = Playlist(self.temp, "playlist")
pl.extend(NUMERIC_SONGS)
pl.extend([fsnative(u"xf0xf0")])
pl.write()
with open(pl.filename, "rb") as h:
self.assertEqual(len(h.read().splitlines()),
len(NUMERIC_SONGS) + 1)
开发者ID:Konzertheld,项目名称:quodlibet,代码行数:9,代码来源:test_util_collection.py
示例18: test_updating_aggregates_append
def test_updating_aggregates_append(s):
pl = Playlist(s.temp, "playlist")
pl.extend(NUMERIC_SONGS)
old_rating = pl.get("~#rating")
pl.append(AMAZING_SONG)
new_rating = pl.get("~#filesize")
s.failUnless(new_rating > old_rating)
开发者ID:Konzertheld,项目名称:quodlibet,代码行数:9,代码来源:test_util_collection.py
示例19: reordered
def reordered(self, songs):
model, iter = self.__view.get_selection().get_selected()
playlist = None
if iter:
playlist = model[iter][0]
playlist[:] = songs
elif songs:
playlist = Playlist.fromsongs(PLAYLISTS, songs)
GLib.idle_add(self.__select_playlist, playlist)
if playlist:
PlaylistsBrowser.changed(playlist, refresh=False)
开发者ID:brunob,项目名称:quodlibet,代码行数:11,代码来源:main.py
示例20: test_playlists_tag
def test_playlists_tag(self):
# Arguably belongs in _audio
songs = NUMERIC_SONGS
Playlist._remove_all()
Playlist._clear_global_cache()
pl_name="playlist 123!"
pl = Playlist(self.temp, pl_name)
pl.extend(songs)
for song in songs:
self.assertEquals(pl_name, song("~playlists"))
开发者ID:silkecho,项目名称:glowing-silk,代码行数:10,代码来源:test_util_collection.py
注:本文中的quodlibet.util.collection.Playlist类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论