def parse_disc_set(fxd, node): """ Callback for VideoItem <disc-set> """ item = VideoItem('', fxd.getattr(None, 'parent', None), parse=False) dirname = os.path.dirname(fxd.filename) item.name = fxd.getattr(node, 'title') item.image = fxd.childcontent(node, 'cover-img') if item.image: item.image = vfs.abspath(os.path.join(dirname, item.image)) fxd.parse_info(node, item, {'runtime': 'length'}) item.__fxd_rom_info__ = True item.__fxd_rom_label__ = [] item.__fxd_rom_id__ = [] item.__fxd_files_options__ = [] for disc in fxd.get_children(node, 'disc'): id = fxd.getattr(disc, 'media-id') if id: item.__fxd_rom_id__.append(id) label = fxd.getattr(disc, 'label-regexp') if label: item.__fxd_rom_label__.append(label) # what to do with the mplayer_options? We can't use them for # one disc, or can we? And file_ops? Also only on a per disc base. # Answer: it applies to all the files of the disc, unless there # are <file-opt> which specify to what files the # mplayer_options apply. <file-opt> is not such a good # name, though. # So I ignore that we are in a disc right now and use the 'item' item.mplayer_options = fxd.getattr(disc, 'mplayer-options') there_are_file_opts = 0 for f in fxd.get_children(disc, 'file-opt'): there_are_file_opts = 1 file_media_id = fxd.getattr(f, 'media-id') if not file_media_id: file_media_id = id mpl_opts = item.mplayer_options + ' ' + fxd.getattr( f, 'mplayer-options') opt = { 'file-id': file_media_id + fxd.gettext(f), 'mplayer-options': mpl_opts } item.__fxd_files_options__.append(opt) if there_are_file_opts: # in this case, the disc/@mplayer_options is retricted to the set # of files defined in the file-opt elements item.mplayer_options = '' if not item.files: item.files = FileInformation() item.files.fxd_file = fxd.filename if fxd.is_skin_fxd: item.skin_fxd = fxd.filename fxd.getattr(None, 'items', []).append(item)
def parse_disc_set(fxd, node): """ Callback for VideoItem <disc-set> """ item = VideoItem('', fxd.getattr(None, 'parent', None), parse=False) dirname = os.path.dirname(fxd.filename) item.name = fxd.getattr(node, 'title') item.image = fxd.childcontent(node, 'cover-img') if item.image: item.image = vfs.abspath(os.path.join(dirname, item.image)) fxd.parse_info(node, item, {'runtime': 'length'}) item.__fxd_rom_info__ = True item.__fxd_rom_label__ = [] item.__fxd_rom_id__ = [] item.__fxd_files_options__ = [] for disc in fxd.get_children(node, 'disc'): id = fxd.getattr(disc, 'media-id') if id: item.__fxd_rom_id__.append(id) label = fxd.getattr(disc, 'label-regexp') if label: item.__fxd_rom_label__.append(label) # what to do with the mplayer_options? We can't use them for # one disc, or can we? And file_ops? Also only on a per disc base. # Answer: it applies to all the files of the disc, unless there # are <file-opt> which specify to what files the # mplayer_options apply. <file-opt> is not such a good # name, though. # So I ignore that we are in a disc right now and use the 'item' item.mplayer_options = fxd.getattr(disc, 'mplayer_options') there_are_file_opts = 0 for f in fxd.get_children(disc, 'file-opt'): there_are_file_opts = 1 file_media_id = fxd.getattr(f, 'media-id') if not file_media_id: file_media_id = id mpl_opts = item.mplayer_options + ' ' + fxd.getattr(f, 'mplayer-options') opt = { 'file-id' : file_media_id + fxd.gettext(f), 'mplayer_options': mpl_opts } item.__fxd_files_options__.append(opt) if there_are_file_opts: # in this case, the disc/@mplayer_options is retricted to the set # of files defined in the file-opt elements item.mplayer_options = '' if not item.files: item.files = FileInformation() item.files.fxd_file = fxd.filename if fxd.is_skin_fxd: item.skin_fxd = fxd.filename fxd.getattr(None, 'items', []).append(item)