diff --git a/src/libprs500/__init__.py b/src/libprs500/__init__.py index dd2ab53f29..e55bfece2b 100644 --- a/src/libprs500/__init__.py +++ b/src/libprs500/__init__.py @@ -13,7 +13,7 @@ ## with this program; if not, write to the Free Software Foundation, Inc., ## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ''' E-book management software''' -__version__ = "0.4.9" +__version__ = "0.4.10" __docformat__ = "epytext" __author__ = "Kovid Goyal " __appname__ = 'libprs500' diff --git a/src/libprs500/ebooks/lrf/html/convert_from.py b/src/libprs500/ebooks/lrf/html/convert_from.py index 222599eaac..b14a87cb3e 100644 --- a/src/libprs500/ebooks/lrf/html/convert_from.py +++ b/src/libprs500/ebooks/lrf/html/convert_from.py @@ -1607,6 +1607,7 @@ def process_file(path, options, logger=None): re.compile(fpba[2], re.IGNORECASE)] if not hasattr(options, 'anchor_ids'): options.anchor_ids = True + options.use_spine = options.use_spine and options.toc.toc is not None files = options.spine if options.use_spine else [path] conv = HTMLConverter(book, fonts, options, logger, files) if options.use_spine: diff --git a/src/libprs500/ebooks/metadata/opf.py b/src/libprs500/ebooks/metadata/opf.py index 0b65b94962..b49e1daf3b 100644 --- a/src/libprs500/ebooks/metadata/opf.py +++ b/src/libprs500/ebooks/metadata/opf.py @@ -64,6 +64,7 @@ class Spine(list): class TOC(list): def __init__(self, opfreader, cwd): + self.toc = toc = None try: toc = opfreader.soup.find('guide').find('reference', attrs={'type':'toc'})['href'] except: @@ -71,19 +72,21 @@ class TOC(list): if 'toc' in item.href.lower(): toc = item.href break - toc = urlparse(unquote(toc))[2] - if not os.path.isabs(toc): - toc = os.path.join(cwd, toc) - self.toc = toc - soup = BeautifulSoup(open(toc, 'rb').read(), convertEntities=BeautifulSoup.HTML_ENTITIES) - for a in soup.findAll('a'): - if not a.has_key('href'): - continue - href = urlparse(unquote(a['href']))[2] - if not os.path.isabs(href): - href = os.path.join(cwd, href) - txt = ''.join([unicode(s).strip() for s in a.findAll(text=True)]) - self.append((href, txt)) + if toc is not None: + toc = urlparse(unquote(toc))[2] + if not os.path.isabs(toc): + toc = os.path.join(cwd, toc) + self.toc = toc + + soup = BeautifulSoup(open(toc, 'rb').read(), convertEntities=BeautifulSoup.HTML_ENTITIES) + for a in soup.findAll('a'): + if not a.has_key('href'): + continue + href = urlparse(unquote(a['href']))[2] + if not os.path.isabs(href): + href = os.path.join(cwd, href) + txt = ''.join([unicode(s).strip() for s in a.findAll(text=True)]) + self.append((href, txt)) class OPFReader(MetaInformation):