Localization works.
This commit is contained in:
@@ -9,7 +9,7 @@ class Item(object):
|
||||
self.content_type = content_type
|
||||
self.payload = payload
|
||||
self.needed_by = set()
|
||||
self.needed_by_elem = set()
|
||||
self.needed_by_elem = []
|
||||
self.needs = set()
|
||||
self.soup = None
|
||||
|
||||
@@ -23,7 +23,7 @@ class Item(object):
|
||||
if directory[-1] != '/':
|
||||
directory += '/'
|
||||
file_name = directory + self.url
|
||||
logger.info("Saved {}".format(file_name))
|
||||
logger.info("Saveing {}".format(file_name))
|
||||
#
|
||||
# Ensure directory exist.
|
||||
#
|
||||
@@ -44,6 +44,13 @@ class Item(object):
|
||||
defrag,_ =urllib.parse.urldefrag(link)
|
||||
return urllib.parse.urljoin(self.url, defrag)
|
||||
|
||||
def refersTo(self, ref_item):
|
||||
self.needs.add(ref_item)
|
||||
|
||||
def referencedBy(self, item, element):
|
||||
self.needed_by.add(item)
|
||||
self.needed_by_elem.append(element)
|
||||
|
||||
|
||||
class Book(object):
|
||||
|
||||
@@ -61,15 +68,6 @@ class Book(object):
|
||||
for item in self.content.values():
|
||||
item.save_file(directory)
|
||||
|
||||
def insertDependency(self, item, element, url):
|
||||
logger = logging.getLogger(__name__)
|
||||
if url in self.content:
|
||||
item.needs.add(self.content[url])
|
||||
self.content[url].needed_by.add(item)
|
||||
self.content[url].needed_by_elem.add(element)
|
||||
elif url:
|
||||
logger.info(" refered but no item exist: {}".format(url))
|
||||
|
||||
def print(self):
|
||||
logger = logging.getLogger(__name__)
|
||||
logger.info("Book Structure:")
|
||||
|
||||
@@ -41,6 +41,7 @@ class EnrichHtml(object):
|
||||
if item.soup is not None:
|
||||
logger.info("Create DAG {}".format(item.url))
|
||||
cls.normalizeUrlAndSetDependecy(book, item, 'a', 'href')
|
||||
cls.normalizeUrlAndSetDependecy(book, item, 'link', 'href')
|
||||
cls.normalizeUrlAndSetDependecy(book, item, 'img', 'src')
|
||||
cls.normalizeUrlAndSetDependecy(book, item, 'img', 'data-mfp-src')
|
||||
|
||||
@@ -53,8 +54,14 @@ class EnrichHtml(object):
|
||||
if not url:
|
||||
continue
|
||||
normal_url = item.getAbsoluteUrl(url)
|
||||
logger.info(" depends on: {}".format(normal_url))
|
||||
book.insertDependency(item, element, normal_url)
|
||||
logger.info(" refers to: {}".format(normal_url))
|
||||
if normal_url in book.content:
|
||||
ref_item = book.content[normal_url]
|
||||
item.refersTo(ref_item)
|
||||
ref_item.referencedBy(item, element)
|
||||
else:
|
||||
logger.info(" refered but no item exist: {}".format(url))
|
||||
element[attr] = ''
|
||||
|
||||
|
||||
@classmethod
|
||||
@@ -71,7 +78,7 @@ class EnrichHtml(object):
|
||||
body.clear()
|
||||
body.append(content)
|
||||
else:
|
||||
logger.error(" No content found: {}".format(item.url))
|
||||
logger.warn(" No content found: {}".format(item.url))
|
||||
remove.append(item)
|
||||
|
||||
for item in remove:
|
||||
|
||||
@@ -34,7 +34,7 @@ def parseMht(mht, book):
|
||||
|
||||
def parseMhtFile(zip, mhtInfo, book):
|
||||
logger = logging.getLogger(__name__)
|
||||
logger.info('Parsing {}, size: {}, csize: {} '
|
||||
logger.info('Reading {}, size: {}, csize: {} '
|
||||
.format(mhtInfo.filename,
|
||||
mhtInfo.file_size,
|
||||
mhtInfo.compress_size))
|
||||
|
||||
@@ -86,9 +86,13 @@ class PrepareEpub(object):
|
||||
for ref_elem in item.needed_by_elem:
|
||||
if ref_elem.name == 'a':
|
||||
_,fragment = urllib.parse.urldefrag(ref_elem['href'])
|
||||
ref_elem['href'] = local_url + "#" + fragment
|
||||
if ref_elem.name == 'img':
|
||||
if fragment:
|
||||
ref_elem['href'] = local_url + "#" + fragment
|
||||
else:
|
||||
ref_elem['href'] = local_url
|
||||
elif ref_elem.name == 'img':
|
||||
ref_elem['src'] = local_url
|
||||
if ref_elem.name == 'img':
|
||||
ref_elem['data-mfp-src'] = local_url
|
||||
else:
|
||||
logger.info("Renaming {} -> {}".format(item.url, local_url))
|
||||
item.url = local_url
|
||||
|
||||
Reference in New Issue
Block a user