core/migration/tables/comments.py

60 lines
1.6 KiB
Python
Raw Normal View History

2021-08-20 09:27:19 +00:00
import datetime
2021-10-09 10:08:27 +00:00
import json
from os.path import abspath
from orm import Shout
from orm.base import local_session
from migration.html2text import html2text
2021-08-20 09:27:19 +00:00
2021-10-09 10:08:27 +00:00
users_dict = json.loads(open(abspath('migration/data/users.dict.json')).read())
topics_dict = json.loads(open(abspath('migration/data/topics.dict.json')).read()) # old_id keyed
2021-08-20 09:27:19 +00:00
def migrate(entry):
2021-08-23 08:44:46 +00:00
'''
2021-10-09 10:08:27 +00:00
{
"_id": "hdtwS8fSyFLxXCgSC",
"body": "<p>",
"contentItem": "mnK8KsJHPRi8DrybQ",
"createdBy": "bMFPuyNg6qAD2mhXe",
"thread": "01/",
"createdAt": "2016-04-19 04:33:53+00:00",
"ratings": [
{ "createdBy": "AqmRukvRiExNpAe8C", "value": 1 },
{ "createdBy": "YdE76Wth3yqymKEu5", "value": 1 }
],
"rating": 2,
"updatedAt": "2020-05-27 19:22:57.091000+00:00",
"updatedBy": "0"
}
->
2021-09-11 08:20:23 +00:00
type Comment {
id: Int!
2021-08-20 09:27:19 +00:00
author: Int!
body: String!
2021-09-11 08:20:23 +00:00
replyTo: Int!
2021-08-20 09:27:19 +00:00
createdAt: DateTime!
2021-09-11 08:20:23 +00:00
updatedAt: DateTime
shout: Int!
2021-08-20 09:27:19 +00:00
deletedAt: DateTime
deletedBy: Int
rating: Int
2021-09-11 08:20:23 +00:00
ratigns: [Rating]
views: Int
old_id: String
2021-08-20 09:27:19 +00:00
}
2021-08-23 08:44:46 +00:00
'''
2021-10-09 10:08:27 +00:00
with local_session() as session:
shout_id = session.query(Shout).filter(Shout.old_id == entry['_id']).first()
return {
'old_id': entry['_id'],
'old_thread': entry['thread'],
'createdBy': users_dict[entry['createdBy']],
'createdAt': entry['createdAt'],
'body': html2text(entry['body']),
'shout': shout_id,
'rating': entry['rating'],
'ratings': [] # TODO: ratings in comments
}
return None