From 5dead44107269d31067f54587a628f2fe4fb5330 Mon Sep 17 00:00:00 2001 From: j Date: Sun, 31 Jan 2016 22:58:53 +0530 Subject: [PATCH] windows pathnames --- oml/item/models.py | 4 ++-- oml/media/epub.py | 13 ++++++++----- oml/media/pdf.py | 4 +++- oml/utils.py | 1 + oml/win32utils.py | 24 ++++++++++++++++++++++++ 5 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 oml/win32utils.py diff --git a/oml/item/models.py b/oml/item/models.py index fe4dc31..20eb9c8 100644 --- a/oml/item/models.py +++ b/oml/item/models.py @@ -657,7 +657,7 @@ class File(db.Model): def fullpath(self): prefs = settings.preferences - prefix = os.path.join(os.path.expanduser(prefs['libraryPath']), 'Books/') + prefix = os.sep.join(os.path.join(os.path.expanduser(prefs['libraryPath']), 'Books/').split('/')) return os.path.join(prefix, self.path) def make_readonly(self): @@ -672,7 +672,7 @@ class File(db.Model): def format_underscores(string): return re.sub('^\.|\.$|:|/|\?|<|>', '_', string) prefs = settings.preferences - prefix = os.path.join(os.path.expanduser(prefs['libraryPath']), 'Books/') + prefix = os.sep.join(os.path.join(os.path.expanduser(prefs['libraryPath']), 'Books/').split('/')) j = self.item.json() current_path = self.fullpath() diff --git a/oml/media/epub.py b/oml/media/epub.py index c367283..fb6473f 100644 --- a/oml/media/epub.py +++ b/oml/media/epub.py @@ -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('= needed: + return output_buf.value + else: + output_buf_size = needed +else: + def get_short_path_name(long_name): + return long_name