From 1be99aa95c0cdd4f13a14f9ae4c7093f57739e52 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Tue, 2 Feb 2016 09:58:53 -0600 Subject: [PATCH] Fix for replace_br_with_p(htmlheuristics) when author includes <>. --- fanficfare/htmlheuristics.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/fanficfare/htmlheuristics.py b/fanficfare/htmlheuristics.py index c35e3c5..2f813ce 100644 --- a/fanficfare/htmlheuristics.py +++ b/fanficfare/htmlheuristics.py @@ -34,7 +34,7 @@ def replace_br_with_p(body): return body # logger.debug(u'---') - # logger.debug(u'BODY start.: ' + body[:250]) + # logger.debug(u'BODY start.: ' + body[:4000]) # logger.debug(u'--') # logger.debug(u'BODY end...: ' + body[-250:]) # logger.debug(u'BODY.......: ' + body) @@ -49,6 +49,9 @@ def replace_br_with_p(body): if is_valid_block(body) and body.find('')+1:body.rindex('<')].strip() + # BS is doing some BS on entities, meaning < and > are turned into < and >... a **very** bad idea in html. + body = re.sub(r'&(.+?);', r'XAMP;\1;', body) + body = soup_up_div(u'
' + body + u'
') body = body[body.index('>')+1:body.rindex('<')] @@ -238,6 +241,7 @@ def replace_br_with_p(body): body = re.sub(r'\s*<(\S+)[^>]*>\s*', r'', body) body = body.replace(u'{br /}', u'
') + body = re.sub(r'XAMP;(.+?);', r'&\1;', body) body = body.strip() # re-wrap in div tag.