From e5ce9658ee26eec75ce6a4f4993c8ee686f9d0e8 Mon Sep 17 00:00:00 2001 From: Skia Date: Wed, 31 May 2017 19:04:00 +0200 Subject: [PATCH] Fix images and links parsing in doku_to_markdown Signed-off-by: Skia --- core/utils.py | 6 ++++-- migrate.py | 11 +++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/core/utils.py b/core/utils.py index 87e22f0d..07bc7bcb 100644 --- a/core/utils.py +++ b/core/utils.py @@ -94,8 +94,10 @@ def doku_to_markdown(text): text = re.sub(r'\\{2,}[\s]', r' \n', text) # Carriage return - text = re.sub(r'\[\[(.*?)(\|(.*?))?\]\]', r'[\3](\1)', text) # Links - text = re.sub(r'{{(.*?)(\|(.*?))?}}', r'![\3](\1 "\3")', text) # Images + text = re.sub(r'\[\[(.*?)\|(.*?)\]\]', r'[\2](\1)', text) # Links + text = re.sub(r'\[\[(.*?)\]\]', r'[\1](\1)', text) # Links 2 + text = re.sub(r'{{(.*?)\|(.*?)}}', r'![\2](\1 "\2")', text) # Images + text = re.sub(r'{{(.*?)(\|(.*?))?}}', r'![\1](\1 "\1")', text) # Images 2 text = re.sub(r'{\[(.*?)(\|(.*?))?\]}', r'[\1](\1)', text) # Video (transform to classic links, since we can't integrate them) text = re.sub(r'###(\d*?)###', r'[[[\1]]]', text) # Progress bar diff --git a/migrate.py b/migrate.py index ea2e860c..ad310a1a 100644 --- a/migrate.py +++ b/migrate.py @@ -1276,10 +1276,13 @@ def migrate_forum(): title=to_unicode(r['titre_message'])[:63], date=r['date_message'].replace(tzinfo=timezone('Europe/Paris')), ) - if r['syntaxengine_message'] == "doku": - msg.message = doku_to_markdown(to_unicode(r['contenu_message'])) - else: - msg.message = bbcode_to_markdown(to_unicode(r['contenu_message'])) + try: + if r['syntaxengine_message'] == "doku": + msg.message = doku_to_markdown(to_unicode(r['contenu_message'])) + else: + msg.message = bbcode_to_markdown(to_unicode(r['contenu_message'])) + except: + msg.message = to_unicode(r['contenu_message']) msg.save() except Exception as e: print(" FAIL to migrate message: %s" % (repr(e)))