当前位置: 首页>>代码示例>>Python>>正文


Python FileBackedPlaylist.from_songs方法代码示例

本文整理汇总了Python中quodlibet.util.collection.FileBackedPlaylist.from_songs方法的典型用法代码示例。如果您正苦于以下问题:Python FileBackedPlaylist.from_songs方法的具体用法?Python FileBackedPlaylist.from_songs怎么用?Python FileBackedPlaylist.from_songs使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在quodlibet.util.collection.FileBackedPlaylist的用法示例。


在下文中一共展示了FileBackedPlaylist.from_songs方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: __drag_data_received

# 需要导入模块: from quodlibet.util.collection import FileBackedPlaylist [as 别名]
# 或者: from quodlibet.util.collection.FileBackedPlaylist import from_songs [as 别名]
 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 = list(filter(None, [library.get(f) for f in 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 = FileBackedPlaylist.from_songs(PLAYLISTS, songs,
                                                      library)
             GLib.idle_add(self._select_playlist, playlist)
         else:
             playlist = model[path][0]
             playlist.extend(songs)
         self.changed(playlist)
         Gtk.drag_finish(ctx, True, False, etime)
         # Cause a refresh to the dragged-to playlist if it is selected
         # so that the dragged (duplicate) track(s) appears
         if playlist is self.__get_name_of_current_selected_playlist():
             model, plist_iter = self.__selected_playlists()
             songlist = qltk.get_top_parent(self).songlist
             self.activate(resort=not songlist.is_sorted())
     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_for(name or os.path.basename(uri))
         try:
             sock = urlopen(uri)
             if uri.lower().endswith('.pls'):
                 playlist = parse_pls(sock, name, library=library)
             elif (uri.lower().endswith('.m3u') or
                     uri.lower().endswith('.m3u8')):
                 playlist = parse_m3u(sock, name, library=library)
             else:
                 raise IOError
             library.add(playlist.songs)
             self.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/M3U8 "
                   "and PLS formats.")).run()
开发者ID:zsau,项目名称:quodlibet,代码行数:59,代码来源:main.py

示例2: __drag_data_received

# 需要导入模块: from quodlibet.util.collection import FileBackedPlaylist [as 别名]
# 或者: from quodlibet.util.collection.FileBackedPlaylist import from_songs [as 别名]
 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 = FileBackedPlaylist.from_songs(PLAYLISTS, songs,
                                                      library)
             GLib.idle_add(self._select_playlist, playlist)
         else:
             playlist = model[path][0]
             playlist.extend(songs)
         self.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 = 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)
             self.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:piotrdrag,项目名称:quodlibet,代码行数:58,代码来源:main.py

示例3: reordered

# 需要导入模块: from quodlibet.util.collection import FileBackedPlaylist [as 别名]
# 或者: from quodlibet.util.collection.FileBackedPlaylist import from_songs [as 别名]
 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 = FileBackedPlaylist.from_songs(PLAYLISTS, songs)
         GLib.idle_add(self._select_playlist, playlist)
     if playlist:
         self.changed(playlist, refresh=False)
开发者ID:piotrdrag,项目名称:quodlibet,代码行数:13,代码来源:main.py

示例4: test_from_songs

# 需要导入模块: from quodlibet.util.collection import FileBackedPlaylist [as 别名]
# 或者: from quodlibet.util.collection.FileBackedPlaylist import from_songs [as 别名]
 def test_from_songs(self):
     pl = FileBackedPlaylist.from_songs(self.temp, NUMERIC_SONGS)
     self.failUnlessEqual(pl.songs, NUMERIC_SONGS)
     pl.delete()
开发者ID:bp0,项目名称:quodlibet,代码行数:6,代码来源:test_util_collection.py


注:本文中的quodlibet.util.collection.FileBackedPlaylist.from_songs方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。