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: {},
 | 
			
		||||
                      translate: {}, timezone: str) -> str:
 | 
			
		||||
                      translate: {}, timezone: str,
 | 
			
		||||
                      system_language: str) -> str:
 | 
			
		||||
    """ Creates html showing historical edits made to a post
 | 
			
		||||
    """
 | 
			
		||||
    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):
 | 
			
		||||
        return ''
 | 
			
		||||
    if not post_json_object['object'].get('content'):
 | 
			
		||||
        return ''
 | 
			
		||||
        if not post_json_object['object'].get('contentMap'):
 | 
			
		||||
            return ''
 | 
			
		||||
    edit_dates_list = []
 | 
			
		||||
    for modified, item in edits_json.items():
 | 
			
		||||
        edit_dates_list.append(modified)
 | 
			
		||||
    edit_dates_list.sort(reverse=True)
 | 
			
		||||
    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:
 | 
			
		||||
        prev_json = edits_json[modified]
 | 
			
		||||
        if not has_object_dict(prev_json):
 | 
			
		||||
            continue
 | 
			
		||||
        prev_content = None
 | 
			
		||||
        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
 | 
			
		||||
        prev_content = remove_html(prev_json['object']['content'])
 | 
			
		||||
        prev_content = remove_html(prev_content)
 | 
			
		||||
        if content == prev_content:
 | 
			
		||||
            continue
 | 
			
		||||
        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>'
 | 
			
		||||
    assert result == expected
 | 
			
		||||
 | 
			
		||||
    system_language = "en"
 | 
			
		||||
    translate = {
 | 
			
		||||
        "SHOW EDITS": "SHOW EDITS"
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -6973,13 +6974,16 @@ def _test_diff_content() -> None:
 | 
			
		|||
        },
 | 
			
		||||
        "2020-12-14T00:07:34Z": {
 | 
			
		||||
            "object": {
 | 
			
		||||
                "content": content2,
 | 
			
		||||
                "contentMap": {
 | 
			
		||||
                    "en": content2
 | 
			
		||||
                },
 | 
			
		||||
                "published": "2020-12-14T00:07:34Z"
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    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
 | 
			
		||||
    expected = \
 | 
			
		||||
        '<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)
 | 
			
		||||
        if edits_json:
 | 
			
		||||
            edits_str = create_edits_html(edits_json, post_json_object,
 | 
			
		||||
                                          translate, timezone)
 | 
			
		||||
                                          translate, timezone, system_language)
 | 
			
		||||
 | 
			
		||||
    message_id_str = ''
 | 
			
		||||
    if message_id:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue