43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
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
|