2023-10-05 18:46:18 +00:00
|
|
|
from services.db import local_session
|
2023-01-17 06:19:12 +00:00
|
|
|
from migration.extract import extract_md
|
|
|
|
from migration.html2text import html2text
|
2023-01-17 19:56:48 +00:00
|
|
|
from orm.reaction import Reaction, ReactionKind
|
2023-01-17 06:19:12 +00:00
|
|
|
|
|
|
|
|
2023-01-17 09:11:18 +00:00
|
|
|
def migrate(entry, storage):
|
2023-10-05 18:46:18 +00:00
|
|
|
post_oid = entry["contentItem"]
|
2023-01-17 09:11:18 +00:00
|
|
|
print(post_oid)
|
2023-10-05 18:46:18 +00:00
|
|
|
shout_dict = storage["shouts"]["by_oid"].get(post_oid)
|
2023-01-17 19:56:48 +00:00
|
|
|
if shout_dict:
|
2023-10-05 18:46:18 +00:00
|
|
|
print(shout_dict["body"])
|
2023-01-17 19:56:48 +00:00
|
|
|
remark = {
|
2023-10-05 18:46:18 +00:00
|
|
|
"shout": shout_dict["id"],
|
|
|
|
"body": extract_md(html2text(entry["body"]), shout_dict),
|
|
|
|
"kind": ReactionKind.REMARK,
|
2023-01-17 19:56:48 +00:00
|
|
|
}
|
2023-01-17 06:19:12 +00:00
|
|
|
|
2023-10-05 18:46:18 +00:00
|
|
|
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 "")
|
2023-01-17 19:56:48 +00:00
|
|
|
)
|
2023-10-05 18:46:18 +00:00
|
|
|
)
|
2023-01-17 19:56:48 +00:00
|
|
|
|
|
|
|
with local_session() as session:
|
|
|
|
rmrk = Reaction.create(**remark)
|
|
|
|
session.commit()
|
|
|
|
del rmrk["_sa_instance_state"]
|
|
|
|
return rmrk
|
|
|
|
return
|