gault-millau/apps/utils/legacy_parser.py
2019-10-27 16:23:30 +03:00

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