diff options
Diffstat (limited to 'epubview/navmap.py')
-rw-r--r-- | epubview/navmap.py | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/epubview/navmap.py b/epubview/navmap.py deleted file mode 100644 index a0a1799..0000000 --- a/epubview/navmap.py +++ /dev/null @@ -1,93 +0,0 @@ -from lxml import etree -import gtk - -class NavPoint(object): - def __init__(self, label, contentsrc, children = []): - self._label = label - self._contentsrc = contentsrc - self._children = children - - def get_label(self): - return self._label - - def get_contentsrc(self): - return self._contentsrc - - def get_children(self): - return self._children - - -class NavMap(object): - def __init__(self, opffile, ncxfile, basepath): - self._basepath = basepath - self._opffile = opffile - self._tree = etree.parse(ncxfile) - self._root = self._tree.getroot() - self._gtktreestore = gtk.TreeStore(str, str) - self._flattoc = [] - - self._populate_flattoc() - self._populate_toc() - - def _populate_flattoc(self): - tree = etree.parse(self._opffile) - root = tree.getroot() - - itemmap = {} - manifest = root.find('.//{http://www.idpf.org/2007/opf}manifest') - for element in manifest.iterfind('{http://www.idpf.org/2007/opf}item'): - itemmap[element.get('id')] = element - - spine = root.find('.//{http://www.idpf.org/2007/opf}spine') - for element in spine.iterfind('{http://www.idpf.org/2007/opf}itemref'): - idref = element.get('idref') - href = itemmap[idref].get('href') - self._flattoc.append(self._basepath + href) - - self._opffile.close() - - def _populate_toc(self): - navmap = self._root.find('{http://www.daisy.org/z3986/2005/ncx/}navMap') - for navpoint in navmap.iterfind('./{http://www.daisy.org/z3986/2005/ncx/}navPoint'): - self._process_navpoint(navpoint) - - def _gettitle(self, navpoint): - text = navpoint.find('./{http://www.daisy.org/z3986/2005/ncx/}navLabel/{http://www.daisy.org/z3986/2005/ncx/}text') - return text.text - - def _getcontent(self, navpoint): - text = navpoint.find('./{http://www.daisy.org/z3986/2005/ncx/}content/') - return self._basepath + text.get('src') - - def _process_navpoint(self, navpoint, parent = None): - title = self._gettitle(navpoint) - content = self._getcontent(navpoint) - - #print title, content - - iter = self._gtktreestore.append(parent, [title, content]) - #self._flattoc.append((title, content)) - - childnavpointlist = list(navpoint.iterfind('./{http://www.daisy.org/z3986/2005/ncx/}navPoint')) - - if len(childnavpointlist): - for childnavpoint in childnavpointlist: - self._process_navpoint(childnavpoint, parent = iter) - else: - return - - def get_gtktreestore(self): - ''' - Returns a GtkTreeModel representation of the - Epub table of contents - ''' - return self._gtktreestore - - def get_flattoc(self): - ''' - Returns a flat (linear) list of files to be - rendered. - ''' - return self._flattoc - -#t = TocParser('/home/sayamindu/Desktop/Test/OPS/fb.ncx')
\ No newline at end of file |