51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
from pprint import pprint
|
|
|
|
import yaml
|
|
|
|
|
|
def parse_legacy_news_content(legacy_content):
|
|
clear_str = '!ruby/hash:ActiveSupport::HashWithIndifferentAccess'
|
|
content_dict = yaml.safe_load(legacy_content.replace(clear_str, ''))
|
|
result = ''
|
|
try:
|
|
result = content_dict['news_content']['value']
|
|
except KeyError:
|
|
pass
|
|
return result
|
|
|
|
|
|
def parse_legacy_schedule_content(legacy_content):
|
|
initial = legacy_content
|
|
|
|
s1 = "!ruby/object:ActionController::Parameters"
|
|
s2 = "!ruby/hash:ActiveSupport::HashWithIndifferentAccess"
|
|
|
|
for _ in (s1, s2):
|
|
legacy_content = legacy_content.replace(_, "")
|
|
content_dict = yaml.safe_load(legacy_content)
|
|
|
|
if s1 not in initial or s2 not in initial:
|
|
return yaml.safe_load(legacy_content)
|
|
|
|
result = {}
|
|
for k, v in content_dict.items():
|
|
try:
|
|
if v["parameters"]["afternoon"]:
|
|
afternoon = v["parameters"]["afternoon"]["parameters"]
|
|
else:
|
|
afternoon = None
|
|
|
|
if v["parameters"]["morning"]:
|
|
morning = v["parameters"]["morning"]["parameters"]
|
|
else:
|
|
morning = None
|
|
|
|
data = {"afternoon": afternoon, "morning": morning}
|
|
result.update({k: data})
|
|
except KeyError:
|
|
print('--------' * 7)
|
|
pprint(initial)
|
|
raise KeyError
|
|
|
|
return result
|