From 261bf8021afb64a7f986c9274ce464159e6450f8 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 9 Jun 2008 16:11:20 -0700 Subject: [PATCH] Add ability to detect ISBN from filenames --- src/calibre/ebooks/metadata/meta.py | 5 ++++ src/calibre/gui2/filename_pattern.ui | 40 +++++++++++++++++++++------- src/calibre/gui2/widgets.py | 14 +++++----- 3 files changed, 42 insertions(+), 17 deletions(-) diff --git a/src/calibre/ebooks/metadata/meta.py b/src/calibre/ebooks/metadata/meta.py index 89cd4f825e..f05a31654e 100644 --- a/src/calibre/ebooks/metadata/meta.py +++ b/src/calibre/ebooks/metadata/meta.py @@ -133,6 +133,11 @@ def metadata_from_filename(name, pat=None): mi.series_index = int(si) except IndexError, ValueError: pass + try: + si = match.group('isbn') + mi.isbn = si + except IndexError, ValueError: + pass if not mi.title: mi.title = name return mi diff --git a/src/calibre/gui2/filename_pattern.ui b/src/calibre/gui2/filename_pattern.ui index b27b4b8296..30fc1b6ac0 100644 --- a/src/calibre/gui2/filename_pattern.ui +++ b/src/calibre/gui2/filename_pattern.ui @@ -5,8 +5,8 @@ 0 0 - 349 - 441 + 335 + 487 @@ -39,6 +39,8 @@ + re + label @@ -46,7 +48,7 @@ &Test - + @@ -76,7 +78,7 @@ - + @@ -84,7 +86,7 @@ - + Regular expression group name (?P<title>) @@ -104,7 +106,7 @@ - + Regular expression group name (?P<authors>) @@ -124,7 +126,7 @@ - + Regular expression group name (?P<series>) @@ -137,14 +139,14 @@ - + Series index: - + Regular expression group name (?P<series_index>) @@ -157,6 +159,26 @@ + + + + ISBN: + + + + + + + Regular expression group name (?P<series_index>) + + + No match + + + true + + + diff --git a/src/calibre/gui2/widgets.py b/src/calibre/gui2/widgets.py index 054caac084..408b8329e5 100644 --- a/src/calibre/gui2/widgets.py +++ b/src/calibre/gui2/widgets.py @@ -14,7 +14,8 @@ from PyQt4.QtCore import QAbstractListModel, QVariant, Qt, QRect, SIGNAL, \ from calibre.gui2.jobs import DetailView from calibre.gui2 import human_readable, NONE, TableView, qstring_to_unicode, error_dialog from calibre.gui2.filename_pattern_ui import Ui_Form -from calibre import fit_image, get_font_families, Settings +from calibre import fit_image, Settings +from calibre.utils.fontconfig import find_font_families from calibre.ebooks.metadata.meta import get_filename_pat, metadata_from_filename, \ set_filename_pat @@ -56,6 +57,9 @@ class FilenamePattern(QWidget, Ui_Form): self.series_index.setText(str(mi.series_index)) else: self.series_index.setText(_('No match')) + + self.isbn.setText(_('No match') if mi.isbn is None else str(mi.isbn)) + def pattern(self): pat = qstring_to_unicode(self.re.text()) @@ -236,8 +240,7 @@ class FontFamilyModel(QAbstractListModel): def __init__(self, *args): QAbstractListModel.__init__(self, *args) - self.family_map = get_font_families() - self.families = self.family_map.keys() + self.families = find_font_families() self.families.sort() self.families[:0] = ['None'] @@ -257,11 +260,6 @@ class FontFamilyModel(QAbstractListModel): return QVariant(QFont(family)) return NONE - def path_of(self, family): - if family != None: - return self.family_map[family] - return None - def index_of(self, family): return self.families.index(family.strip())