def add_m3u(self, from_model=None, from_iter=None, to_tree=None, to_model=None, to_iter=None, pos=None, row=None): if row: if get_file_extension(row[self.path[0]]) in [".m3u", ".m3u8"]: m3u_file_path = row[self.path[0]] m3u_title = row[self.text[0]] else: return else: if ((from_model.get_value(from_iter, 0).lower().endswith(".m3u") or from_model.get_value(from_iter, 0).lower().endswith(".m3u8")) and from_model.get_model() is not to_model): m3u_file_path = from_model.get_value(from_iter, self.path[0]) m3u_title = from_model.get_value(from_iter, self.text[0]) else: return if m3u_file_path.startswith("http//"): return None paths = m3u_reader(m3u_file_path) paths.insert(0, os.path.splitext(m3u_title)[0]) first_path = paths[0][0] if isinstance(paths[0], list) else paths[0] if first_path: list_path = first_path[0].split("/") name = list_path[len(list_path) - 2] parent = FModel(name) new_iter = None for i, path in enumerate(paths): if isinstance(path, list): text = path[1] path = path[0] bean = FModel(path, path).add_is_file(True) if text: bean.text = text elif not i: bean = FModel(_("m3u playlist: ") + path).add_is_file(False).add_font("bold") else: bean = FModel(path, path).parent(parent) row = self.fill_beans_and_get_rows([bean])[0] if new_iter: to_iter = new_iter new_iter = self.to_add_drag_item(to_tree, to_model, to_iter, pos, None, row=row) return True
def add_m3u(self, from_model, from_iter, to_model, to_iter, pos): if ((from_model.get_value(from_iter, 0).lower().endswith(".m3u") or from_model.get_value(from_iter, 0).lower().endswith(".m3u8")) and from_model.get_model() is not to_model): m3u_file_path = from_model.get_value(from_iter, 5) m3u_title = from_model.get_value(from_iter, 0) if m3u_file_path.startswith("http"): return None paths = m3u_reader(m3u_file_path) paths.insert(0, os.path.splitext(m3u_title)[0]) list = paths[0].split("/") name = list[len(list) - 2] parent = FModel(name) new_iter = None for i, path in enumerate(paths): if not i: bean = FModel(path) else: bean = FModel(path, path).parent(parent) row = self.get_row_from_bean(bean) if new_iter: to_iter = new_iter new_iter = self.to_add_drag_item(to_model, to_iter, pos, None, row=row) return True
def on_add_files(self, paths=None, tab_name=None): if not paths: paths = file_chooser_dialog(_("Choose file to open"), FC().last_dir) copy_paths = copy.deepcopy(paths) for i, path in enumerate(copy_paths): if path.lower().endswith(".m3u") or path.lower().endswith( ".m3u8"): paths[i:i + 1] = m3u_reader(path) if len(copy_paths) == 1: ext = os.path.splitext(path)[1] tab_name = os.path.basename(path)[:-len(ext)] break if paths: if paths[0]: if isinstance(paths[0], list): path = paths[0][0] else: path = paths[0] else: if isinstance(path, list): path = paths[1][0] else: path = paths[1] if path: list_path = path.split("/") name = list_path[len(list_path) - 2] if not tab_name: tab_name = os.path.split(os.path.dirname(path))[1] FC().last_dir = path[:path.rfind("/")] self.append_to_new_notebook(tab_name, []) parent = FModel(name) self.append_to_current_notebook([parent]) else: self.append_to_new_notebook(tab_name, []) parent = FModel(tab_name) self.append_to_current_notebook([parent]) beans = [] for path in paths: text = None if isinstance(path, list): text = path[1] path = path[0] bean = FModel(path, path).add_is_file(True) else: bean = FModel(path, path).parent(parent).add_is_file(True) if text: bean.text = text beans.append(bean) if not beans: self.append_to_current_notebook([ FModel( _("Nothing found to play in the file(s)") + paths[0]) ]) else: self.append_to_current_notebook(beans)
def on_add_files(self, paths=None, tab_name=None): if not paths: paths = file_chooser_dialog(_("Choose file to open"), FC().last_dir) if not paths: return copy_paths = copy.deepcopy(paths) for i, path in enumerate(copy_paths): if path.lower().endswith(".m3u") or path.lower().endswith(".m3u8"): paths[i:i + 1] = m3u_reader(path) if len(copy_paths) == 1: ext = os.path.splitext(path)[1] tab_name = os.path.basename(path)[:-len(ext)] break if paths: if paths[0]: if isinstance(paths[0], list): path = paths[0][0] else: path = paths[0] else: if isinstance(path, list): path = paths[1][0] else: path = paths[1] if path: list_path = path.split("/") name = list_path[len(list_path) - 2] if not tab_name: tab_name = os.path.split(os.path.dirname(path))[1] FC().last_dir = path[:path.rfind("/")] self.append_to_new_notebook(tab_name, []) parent = FModel(name) self.append_to_current_notebook([parent]) else: self.append_to_new_notebook(tab_name, []) parent = FModel(tab_name) self.append_to_current_notebook([parent]) beans = [] for path in paths: text = None if isinstance(path, list): text = path[1] path = path[0] bean = FModel(path, path).add_is_file(True) else: bean = FModel(path, path).parent(parent).add_is_file(True) if text: bean.text = text beans.append(bean) if not beans: self.append_to_current_notebook([FModel(_("Nothing found to play in the file(s)") + paths[0])]) else: self.append_to_current_notebook(beans)
def add_m3u(self, from_model=None, from_iter=None, to_tree=None, to_model=None, to_iter=None, pos=None, row=None): if row: if get_file_extension(row[self.path[0]]) in [".m3u", ".m3u8"]: m3u_file_path = row[self.path[0]] m3u_title = row[self.text[0]] else: return else: if ((from_model.get_value(from_iter, 0).lower().endswith(".m3u") or from_model.get_value(from_iter, 0).lower().endswith(".m3u8")) and from_model.get_model() is not to_model): m3u_file_path = from_model.get_value(from_iter, self.path[0]) m3u_title = from_model.get_value(from_iter, self.text[0]) else: return if m3u_file_path.startswith("http//"): return None paths = m3u_reader(m3u_file_path) paths.insert(0, os.path.splitext(m3u_title)[0]) first_path = paths[0][0] if isinstance(paths[0], list) else paths[0] if first_path: list_path = first_path[0].split("/") name = list_path[len(list_path) - 2] parent = FModel(name) new_iter = None for i, path in enumerate(paths): if isinstance(path, list): text = path[1] path = path[0] bean = FModel(path, path).add_is_file(True) if text: bean.text = text elif not i: bean = FModel(_("m3u playlist: ") + path).add_is_file(False).add_font("bold") else: bean = FModel(path, path).add_is_file(True).parent(parent) row = self.fill_beans_and_get_rows([bean])[0] if new_iter: to_iter = new_iter new_iter = self.to_add_drag_item(to_tree, to_model, to_iter, pos, None, row=row) return True
def add_m3u(self, from_model=None, from_iter=None, to_tree=None, to_model=None, to_iter=None, pos=None, row=None): if row: m3u_file_path = row[self.path[0]] m3u_title = row[self.text[0]] else: if from_model.get_model() is not to_model: m3u_file_path = from_model.get_value(from_iter, self.path[0]) m3u_title = from_model.get_value(from_iter, self.text[0]) else: return if m3u_file_path.startswith("http//"): return None paths = m3u_reader(m3u_file_path) paths.insert(0, [None, os.path.splitext(m3u_title)[0]]) new_iter = None for i, path in enumerate(paths): if i == 0: bean = FModel(_("m3u playlist: ") + path[1]).add_is_file(False).add_font("bold") else: text = path[1] path = path[0] bean = FModel(path, path).add_is_file(True) if path.startswith("http"): bean.add_type(FTYPE_RADIO) if text: bean.text = text row = self.fill_beans_and_get_rows([bean])[0] if new_iter: to_iter = new_iter new_iter = self.to_add_drag_item(to_tree, to_model, to_iter, pos, None, row=row) return True
def add_m3u(self, from_model, from_iter, to_model, to_iter, pos): if (from_model.get_value(from_iter, 0).lower().endswith(".m3u") or from_model.get_value(from_iter, 0).lower().endswith(".m3u8")): logging.info("m3u is found") m3u_file_path = from_model.get_value(from_iter, 5) m3u_title = from_model.get_value(from_iter, 0) paths = m3u_reader(m3u_file_path) paths.insert(0, os.path.splitext(m3u_title)[0]) list = paths[0].split("/") name = list[len(list) - 2] parent = FModel(name) new_iter = None for i, path in enumerate(paths): if not i: bean = FModel(path) else: bean = FModel(path, path).parent(parent) row = self.get_row_from_bean(bean) if new_iter: to_iter = new_iter new_iter = self.to_add_drug_item(to_model, to_iter, None, pos, row=row) return True