windows pathnames

This commit is contained in:
j 2016-01-31 22:58:53 +05:30
commit 5dead44107
5 changed files with 38 additions and 8 deletions

View file

@ -28,6 +28,9 @@ def get_ratio(data):
except:
return -1
def normpath(path):
return '/'.join(os.path.normpath(path).split(os.sep))
def cover(path):
logger.debug('cover %s', path)
data = None
@ -69,7 +72,7 @@ def cover(path):
for e in manifest.getchildren():
if e.attrib['id'] == cover_id:
filename = unquote(e.attrib['href'])
filename = os.path.normpath(os.path.join(os.path.dirname(opf[0]), filename))
filename = normpath(os.path.join(os.path.dirname(opf[0]), filename))
if filename in files:
return use(filename)
if manifest:
@ -78,7 +81,7 @@ def cover(path):
image_data = []
for e in images:
filename = unquote(e.attrib['href'])
filename = os.path.normpath(os.path.join(os.path.dirname(opf[0]), filename))
filename = normpath(os.path.join(os.path.dirname(opf[0]), filename))
if filename in files:
image_data.append(filename)
if image_data:
@ -87,14 +90,14 @@ def cover(path):
for e in manifest.getchildren():
if 'html' in e.attrib['media-type']:
filename = unquote(e.attrib['href'])
filename = os.path.normpath(os.path.join(os.path.dirname(opf[0]), filename))
filename = normpath(os.path.join(os.path.dirname(opf[0]), filename))
html = z.read(filename).decode('utf-8', 'ignore')
img = re.compile('<img.*?src="(.*?)"').findall(html)
#svg image
img += re.compile('<image.*?href="(.*?)"').findall(html)
if img:
img = unquote(img[0])
img = os.path.normpath(os.path.join(os.path.dirname(filename), img))
img = normpath(os.path.join(os.path.dirname(filename), img))
if img in files:
return use(img)
return data
@ -152,7 +155,7 @@ def info(epub):
for ref in guide.findall('{http://www.idpf.org/2007/opf}reference'):
if ref.attrib.get('type') == 'toc':
filename = unquote(ref.attrib['href']).split('#')[0]
filename = os.path.normpath(os.path.join(os.path.dirname(opf[0]), filename))
filename = normpath(os.path.join(os.path.dirname(opf[0]), filename))
if filename in files:
toc = z.read(filename)
if toc:

View file

@ -14,7 +14,7 @@ from PyPDF2 import PdfFileReader
import ox
import settings
from utils import get_language, to_isbn13, find_isbns
from utils import get_language, to_isbn13, find_isbns, get_short_path_name
import logging
logger = logging.getLogger(__name__)
@ -51,6 +51,8 @@ def ql_cover(pdf):
def page(pdf, page):
tmp = tempfile.mkdtemp()
if sys.platform == 'win32':
pdf = get_short_path_name(pdf)
cmd = [
'pdftocairo',
pdf,