mirror of https://gitlab.com/bashrc2/epicyon
Use contentMap, if available, when showing post diff
parent
320a02d95f
commit
eb5f561294
31
content.py
31
content.py
|
@ -1463,7 +1463,8 @@ def content_diff(content: str, prev_content: str) -> str:
|
||||||
|
|
||||||
|
|
||||||
def create_edits_html(edits_json: {}, post_json_object: {},
|
def create_edits_html(edits_json: {}, post_json_object: {},
|
||||||
translate: {}, timezone: str) -> str:
|
translate: {}, timezone: str,
|
||||||
|
system_language: str) -> str:
|
||||||
""" Creates html showing historical edits made to a post
|
""" Creates html showing historical edits made to a post
|
||||||
"""
|
"""
|
||||||
if not edits_json:
|
if not edits_json:
|
||||||
|
@ -1471,20 +1472,42 @@ def create_edits_html(edits_json: {}, post_json_object: {},
|
||||||
if not has_object_dict(post_json_object):
|
if not has_object_dict(post_json_object):
|
||||||
return ''
|
return ''
|
||||||
if not post_json_object['object'].get('content'):
|
if not post_json_object['object'].get('content'):
|
||||||
return ''
|
if not post_json_object['object'].get('contentMap'):
|
||||||
|
return ''
|
||||||
edit_dates_list = []
|
edit_dates_list = []
|
||||||
for modified, item in edits_json.items():
|
for modified, item in edits_json.items():
|
||||||
edit_dates_list.append(modified)
|
edit_dates_list.append(modified)
|
||||||
edit_dates_list.sort(reverse=True)
|
edit_dates_list.sort(reverse=True)
|
||||||
edits_str = ''
|
edits_str = ''
|
||||||
content = remove_html(post_json_object['object']['content'])
|
content = None
|
||||||
|
if post_json_object['object'].get('contentMap'):
|
||||||
|
if post_json_object['object']['contentMap'].get(system_language):
|
||||||
|
content = \
|
||||||
|
post_json_object['object']['contentMap'][system_language]
|
||||||
|
if not content:
|
||||||
|
if post_json_object['object'].get('content'):
|
||||||
|
content = post_json_object['object']['content']
|
||||||
|
if not content:
|
||||||
|
return ''
|
||||||
|
content = remove_html(content)
|
||||||
for modified in edit_dates_list:
|
for modified in edit_dates_list:
|
||||||
prev_json = edits_json[modified]
|
prev_json = edits_json[modified]
|
||||||
if not has_object_dict(prev_json):
|
if not has_object_dict(prev_json):
|
||||||
continue
|
continue
|
||||||
|
prev_content = None
|
||||||
if not prev_json['object'].get('content'):
|
if not prev_json['object'].get('content'):
|
||||||
|
if not prev_json['object'].get('contentMap'):
|
||||||
|
continue
|
||||||
|
if prev_json['object'].get('contentMap'):
|
||||||
|
if prev_json['object']['contentMap'].get(system_language):
|
||||||
|
prev_content = \
|
||||||
|
prev_json['object']['contentMap'][system_language]
|
||||||
|
if not prev_content:
|
||||||
|
if prev_json['object'].get('content'):
|
||||||
|
prev_content = prev_json['object']['content']
|
||||||
|
if not prev_content:
|
||||||
continue
|
continue
|
||||||
prev_content = remove_html(prev_json['object']['content'])
|
prev_content = remove_html(prev_content)
|
||||||
if content == prev_content:
|
if content == prev_content:
|
||||||
continue
|
continue
|
||||||
diff = content_diff(content, prev_content)
|
diff = content_diff(content, prev_content)
|
||||||
|
|
8
tests.py
8
tests.py
|
@ -6945,6 +6945,7 @@ def _test_diff_content() -> None:
|
||||||
'<label class="diff_remove">- This is another line</label></p>'
|
'<label class="diff_remove">- This is another line</label></p>'
|
||||||
assert result == expected
|
assert result == expected
|
||||||
|
|
||||||
|
system_language = "en"
|
||||||
translate = {
|
translate = {
|
||||||
"SHOW EDITS": "SHOW EDITS"
|
"SHOW EDITS": "SHOW EDITS"
|
||||||
}
|
}
|
||||||
|
@ -6973,13 +6974,16 @@ def _test_diff_content() -> None:
|
||||||
},
|
},
|
||||||
"2020-12-14T00:07:34Z": {
|
"2020-12-14T00:07:34Z": {
|
||||||
"object": {
|
"object": {
|
||||||
"content": content2,
|
"contentMap": {
|
||||||
|
"en": content2
|
||||||
|
},
|
||||||
"published": "2020-12-14T00:07:34Z"
|
"published": "2020-12-14T00:07:34Z"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
html_str = \
|
html_str = \
|
||||||
create_edits_html(edits_json, post_json_object, translate, timezone)
|
create_edits_html(edits_json, post_json_object, translate,
|
||||||
|
timezone, system_language)
|
||||||
assert html_str
|
assert html_str
|
||||||
expected = \
|
expected = \
|
||||||
'<details><summary class="cw">SHOW EDITS</summary>' + \
|
'<details><summary class="cw">SHOW EDITS</summary>' + \
|
||||||
|
|
|
@ -1490,7 +1490,7 @@ def individual_post_as_html(signing_priv_key_pem: str,
|
||||||
edits_json = load_json(edits_filename, 0, 1)
|
edits_json = load_json(edits_filename, 0, 1)
|
||||||
if edits_json:
|
if edits_json:
|
||||||
edits_str = create_edits_html(edits_json, post_json_object,
|
edits_str = create_edits_html(edits_json, post_json_object,
|
||||||
translate, timezone)
|
translate, timezone, system_language)
|
||||||
|
|
||||||
message_id_str = ''
|
message_id_str = ''
|
||||||
if message_id:
|
if message_id:
|
||||||
|
|
Loading…
Reference in New Issue