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