ISBNs in book_info
authorJan Szejko <janek37@gmail.com>
Wed, 17 May 2017 12:14:14 +0000 (14:14 +0200)
committerJan Szejko <janek37@gmail.com>
Wed, 17 May 2017 12:14:14 +0000 (14:14 +0200)
librarian/dcparser.py
librarian/text.py

index 40eac14..0a2822c 100644 (file)
@@ -310,6 +310,10 @@ class WorkInfo(object):
                     text = text.decode('utf-8')
                 val = TextPlus(text)
                 val.lang = e.attrib.get(XMLNS('lang'), lang)
                     text = text.decode('utf-8')
                 val = TextPlus(text)
                 val.lang = e.attrib.get(XMLNS('lang'), lang)
+                if e.tag == 'meta':
+                    meta_id = e.attrib.get('id')
+                    if meta_id and meta_id.endswith('-id'):
+                        field_dict[meta_id] = [val.replace('ISBN-', 'ISBN ')]
             else:
                 val = e.text
             fv.append(val)
             else:
                 val = e.text
             fv.append(val)
@@ -458,6 +462,11 @@ class BookInfo(WorkInfo):
         # WLCover-specific.
         Field(WLNS('coverBarColor'), 'cover_bar_color', required=False),
         Field(WLNS('coverBoxPosition'), 'cover_box_position', required=False),
         # WLCover-specific.
         Field(WLNS('coverBarColor'), 'cover_bar_color', required=False),
         Field(WLNS('coverBoxPosition'), 'cover_box_position', required=False),
+        Field('pdf-id',  'isbn_pdf',  required=False),
+        Field('epub-id', 'isbn_epub', required=False),
+        Field('mobi-id', 'isbn_mobi', required=False),
+        Field('txt-id',  'isbn_txt',  required=False),
+        Field('html-id', 'isbn_html', required=False),
     )
 
 
     )
 
 
index 39bf324..3cd7313 100644 (file)
@@ -85,9 +85,9 @@ def transform(wldoc, flags=None, **options):
             if funders:
                 funders = u"\n\nPublikację wsparli i wsparły: %s." % funders
             publisher = '\n\nWydawca: ' + ', '.join(parsed_dc.publisher)
             if funders:
                 funders = u"\n\nPublikację wsparli i wsparły: %s." % funders
             publisher = '\n\nWydawca: ' + ', '.join(parsed_dc.publisher)
-            isbn_element = document.edoc.find("//meta[@id='txt-id']")
-            if isbn_element is not None:
-                isbn = isbn_element.text.replace('ISBN-', '\n\nISBN ')
+            isbn = getattr(parsed_dc, 'isbn_html', None)
+            if isbn:
+                isbn = '\n\n' + isbn
             else:
                 isbn = ''
         else:
             else:
                 isbn = ''
         else: