Beispiel #1
0
    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