from base.orm import local_session from migration.extract import extract_md from migration.html2text import html2text from orm.reaction import Reaction, ReactionKind def migrate(entry, storage): post_oid = entry["contentItem"] print(post_oid) shout_dict = storage["shouts"]["by_oid"].get(post_oid) if shout_dict: print(shout_dict["body"]) remark = { "shout": shout_dict["id"], "body": extract_md(html2text(entry["body"]), shout_dict), "kind": ReactionKind.REMARK, } if entry.get("textBefore"): remark["range"] = ( str(shout_dict["body"].index(entry["textBefore"] or "")) + ":" + str( shout_dict["body"].index(entry["textAfter"] or "") + len(entry["textAfter"] or "") ) ) with local_session() as session: rmrk = Reaction.create(**remark) session.commit() del rmrk["_sa_instance_state"] return rmrk return