From 9b16d5017a474739a6ded4102b3b650ac4c89925 Mon Sep 17 00:00:00 2001 From: tonyrewin Date: Wed, 5 Oct 2022 12:32:48 +0300 Subject: [PATCH] migrate body API --- migration/extract.py | 10 +++++++--- resolvers/__init__.py | 4 ++++ resolvers/migrate.py | 11 +++++++++++ schema.graphql | 3 +++ 4 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 resolvers/migrate.py diff --git a/migration/extract.py b/migration/extract.py index 558e56ef..89b3b11f 100644 --- a/migration/extract.py +++ b/migration/extract.py @@ -1,7 +1,7 @@ import base64 import os import re - +import uuid from .html2text import html2text TOOLTIP_REGEX = r"(\/\/\/(.+)\/\/\/)" @@ -236,18 +236,22 @@ def cleanup(body): return newbody -def extract_md(body, oid): +def extract_md(body, oid=""): newbody = body if newbody: - newbody = extract_md_images(newbody, oid) + uid = oid or uuid.uuid4() + newbody = extract_md_images(newbody, uid) if not newbody: raise Exception("extract_images error") + newbody = cleanup(newbody) if not newbody: raise Exception("cleanup error") + newbody, placed = place_tooltips(newbody) if not newbody: raise Exception("place_tooltips error") + if placed: newbody = "import Tooltip from '$/components/Article/Tooltip'\n\n" + newbody return newbody diff --git a/resolvers/__init__.py b/resolvers/__init__.py index 9f0fbe25..eefd9578 100644 --- a/resolvers/__init__.py +++ b/resolvers/__init__.py @@ -15,6 +15,8 @@ from resolvers.community import ( get_communities, ) +from resolvers.migrate import markdown_body + # from resolvers.collab import invite_author, remove_author from resolvers.editor import create_shout, delete_shout, update_shout from resolvers.profile import ( @@ -89,6 +91,8 @@ __all__ = [ "create_shout", "update_shout", "delete_shout", + # migrate + "markdown_body", # collab "invite_author", "remove_author", diff --git a/resolvers/migrate.py b/resolvers/migrate.py new file mode 100644 index 00000000..0b090578 --- /dev/null +++ b/resolvers/migrate.py @@ -0,0 +1,11 @@ + +from base.orm import query +from resoolvers.auth import login_required +from migration.extract import extract_md + + +@login_required +@query.field("markdownBody") +def markdown_body(_, info, body): + body = extract_md(body) + return body diff --git a/schema.graphql b/schema.graphql index 863d20e6..b779a62f 100644 --- a/schema.graphql +++ b/schema.graphql @@ -253,6 +253,9 @@ type Query { # collab getCollabs: [Collab]! + # migrate + markdownBody(body: String!): String! + # topics topicsAll: [Topic]! topicsRandom(amount: Int): [Topic]!