Beispiel #1
0
 def opdsToMetadata(self, opdsBookStructure):
     authors = opdsBookStructure.author.replace(u'& ', u'&')
     metadata = Metadata(opdsBookStructure.title, authors.split(u'&'))
     metadata.uuid = opdsBookStructure.id.replace('urn:uuid:', '', 1)
     rawTimestamp = opdsBookStructure.updated
     parsableTimestamp = re.sub('((\.[0-9]+)?\+00:00|Z)$', '', rawTimestamp)
     metadata.timestamp = datetime.datetime.strptime(parsableTimestamp, '%Y-%m-%dT%H:%M:%S')
     tags = []
     summary = opdsBookStructure.get(u'summary', u'')
     summarylines = summary.splitlines()
     for summaryline in summarylines:
         if summaryline.startswith(u'TAGS: '):
             tagsline = summaryline.replace(u'TAGS: ', u'')
             tagsline = tagsline.replace(u'<br />',u'')
             tagsline = tagsline.replace(u', ', u',')
             tags = tagsline.split(u',')
     metadata.tags = tags
     bookDownloadUrls = []
     links = opdsBookStructure.get('links', [])
     for link in links:
         url = link.get('href', '')
         bookType = link.get('type', '')
         # Skip covers and thumbnails
         if not bookType.startswith('image/'):
             if bookType == 'application/epub+zip':
                 # EPUB books are preferred and always put at the head of the list if found
                 bookDownloadUrls.insert(0, url)
             else:
                 # Formats other than EPUB (eg. AZW), are appended as they are found
                 bookDownloadUrls.append(url)
     metadata.links = bookDownloadUrls
     return metadata
Beispiel #2
0
 def opdsToMetadata(self, opdsBookStructure):
     authors = opdsBookStructure.author.replace(u"& ", u"&")
     metadata = Metadata(opdsBookStructure.title, authors.split(u"&"))
     metadata.uuid = opdsBookStructure.id.replace("urn:uuid:", "", 1)
     rawTimestamp = opdsBookStructure.updated
     parsableTimestamp = re.sub(r"((\.[0-9]+)?\+00:00|Z)$", "",
                                rawTimestamp)
     metadata.timestamp = datetime.datetime.strptime(
         parsableTimestamp, "%Y-%m-%dT%H:%M:%S")
     tags = []
     summary = opdsBookStructure.get(u"summary", u"")
     summarylines = summary.splitlines()
     for summaryline in summarylines:
         if summaryline.startswith(u"TAGS: "):
             tagsline = summaryline.replace(u"TAGS: ", u"")
             tagsline = tagsline.replace(u"<br />", u"")
             tagsline = tagsline.replace(u", ", u",")
             tags = tagsline.split(u",")
     metadata.tags = tags
     bookDownloadUrls = []
     links = opdsBookStructure.get("links", [])
     for link in links:
         url = link.get("href", "")
         bookType = link.get("type", "")
         # Skip covers and thumbnails
         if not bookType.startswith("image/"):
             if bookType == "application/x-mobipocket-ebook":
                 # azw3 books are preferred and always put at the head of the list if found
                 bookDownloadUrls.insert(0, url)
             else:
                 # Other formats are appended as they are found
                 bookDownloadUrls.append(url)
     metadata.links = bookDownloadUrls
     return metadata