Join node with 1 child of the same type

pull/21/head
Mišo Belica 11 years ago
parent ade957cb47
commit 7337e2fb38

@ -424,12 +424,19 @@ class Article(object):
logger.debug('Begin final prep of article')
updated_winner.node = prep_article(updated_winner.node)
if updated_winner.node is not None:
doc = build_base_document(updated_winner.node, self.fragment)
dom = build_base_document(updated_winner.node, self.fragment)
else:
logger.warning('Had candidates but failed to find a cleaned winning DOM.')
doc = self._handle_no_candidates()
dom = self._handle_no_candidates()
return doc
return self._remove_orphans(dom.get_element_by_id("readabilityBody"))
def _remove_orphans(self, dom):
for node in dom.iterdescendants():
if len(node) == 1 and tuple(node)[0].tag == node.tag:
node.drop_tag()
return dom
def _handle_no_candidates(self):
"""
@ -441,7 +448,8 @@ class Article(object):
drop_nodes_with_parents(self._should_drop)
dom = prep_article(self.dom)
return build_base_document(dom, self.fragment)
dom = build_base_document(dom, self.fragment)
return self._remove_orphans(dom.get_element_by_id("readabilityBody"))
else:
logger.warning("No document to use.")
return build_error_document(self.fragment)

Loading…
Cancel
Save