From 66fe82db220cd67e4ce88c1b1d78c4b8f0fb7e23 Mon Sep 17 00:00:00 2001 From: John Schember Date: Sat, 1 Aug 2009 21:25:28 -0400 Subject: [PATCH 1/2] iRed DR: Put books into ebooks directory. --- src/calibre/devices/irexdr/driver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calibre/devices/irexdr/driver.py b/src/calibre/devices/irexdr/driver.py index 777e037b6f..51826a411e 100644 --- a/src/calibre/devices/irexdr/driver.py +++ b/src/calibre/devices/irexdr/driver.py @@ -34,7 +34,7 @@ class IREXDR1000(USBMS): MAIN_MEMORY_VOLUME_LABEL = 'IRex Digital Reader 1000 Main Memory' - EBOOK_DIR_MAIN = '' + EBOOK_DIR_MAIN = 'ebooks' SUPPORTS_SUB_DIRS = True def delete_books(self, paths, end_session=True): From 10865f505da10a9398ee8af45efbcb75299e313e Mon Sep 17 00:00:00 2001 From: John Schember Date: Sun, 2 Aug 2009 11:12:17 -0400 Subject: [PATCH 2/2] Detect qt include dir properly. Fix bug #3047: fall back to file name when reading metadata on device properly. --- setup.py | 16 +++++++--------- src/calibre/devices/usbms/driver.py | 6 ++++-- src/calibre/ebooks/metadata/meta.py | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/setup.py b/setup.py index 52c50d3e6a..23db3940f4 100644 --- a/setup.py +++ b/setup.py @@ -60,17 +60,15 @@ if __name__ == '__main__': optional = [] qmake = '/Volumes/sw/qt/bin/qmake' if isosx else 'qmake' qmake = os.environ.get('QMAKE', qmake) - raw = subprocess.Popen([qmake, '-query'], + def qmake_query(arg=''): + return subprocess.Popen([qmake, '-query', arg], stdout=subprocess.PIPE).stdout.read() qt_inc = qt_lib = None - for line in raw.splitlines(): - q, _, w = line.partition(':') - if q == 'QT_INSTALL_HEADERS': - qt_inc = w - elif q == 'QT_INSTALL_LIBS': - qt_lib = w - - + qt_inc = qmake_query('QT_INSTALL_HEADERS').splitlines()[0] + qt_inc = qt_inc if qt_inc not in ('', '**Unknown**') and os.path.isdir(qt_inc) else None + qt_lib = qmake_query('QT_INSTALL_LIBS').splitlines()[0] + qt_lib = qt_lib if qt_lib not in ('', '**Unknown**') and os.path.isdir(qt_lib) else None + if iswindows: optional.append(Extension('calibre.plugins.winutil', sources=['src/calibre/utils/windows/winutil.c'], diff --git a/src/calibre/devices/usbms/driver.py b/src/calibre/devices/usbms/driver.py index 7df3911cdc..486bb46472 100644 --- a/src/calibre/devices/usbms/driver.py +++ b/src/calibre/devices/usbms/driver.py @@ -8,6 +8,7 @@ for a particular device. import os import fnmatch +import re import shutil from itertools import cycle @@ -207,8 +208,9 @@ class USBMS(CLI, Device): if cls.settings().read_metadata or cls.MUST_READ_METADATA: mi = cls.metadata_from_path(path) else: - from calibre.ebooks.metadata import MetaInformation - mi = MetaInformation(os.path.basename(path)) + from calibre.ebooks.metadata.meta import metadata_from_filename + mi = metadata_from_filename(os.path.basename(path), + re.compile(r'^(?P[ \S]+?)[ _]-[ _](?P<author>[ \S]+?)_+\d+')) authors = authors_to_string(mi.authors) diff --git a/src/calibre/ebooks/metadata/meta.py b/src/calibre/ebooks/metadata/meta.py index 0105f0bc54..7c89a9bc0d 100644 --- a/src/calibre/ebooks/metadata/meta.py +++ b/src/calibre/ebooks/metadata/meta.py @@ -94,7 +94,7 @@ def get_metadata(stream, stream_type='lrf', use_libprs_metadata=False): # The regex is meant to match the standard format filenames are written # in: title_-_author_number.extension base.smart_update(metadata_from_filename(name, re.compile( - r'^(?P<title>\S+?)_-_(?P<author>\S+?)_+\d+'))) + r'^(?P<title>[ \S]+?)[ _]-[ _](?P<author>[ \S]+?)_+\d+'))) if base.title: base.title = base.title.replace('_', ' ') if base.authors: