from .tool.func import * def view_diff_do(first_raw_data, second_raw_data, first, second): if first_raw_data == second_raw_data: result = '' else: dmp = diff_match_patch() diff_data = dmp.diff_main(first_raw_data, second_raw_data) dmp.diff_cleanupSemantic(diff_data) diff_data += [[0, '\n']] diff_data_2 = [] temp_list = [] line = 1 line_change = 0 for for_a in diff_data: line_split = re.findall(r'(.*\n)|(.+$)', for_a[1]) if line_split: for for_b in line_split: if for_b[0] != '': if for_a[0] != 0: line_change = 1 temp_list += [[line, for_a[0], for_b[0].replace('\n', '')]] if line_change == 1: diff_data_2 += temp_list temp_list = [] line_change = 0 line += 1 else: if for_a[0] != 0: line_change = 1 temp_list += [[line, for_a[0], for_b[1]]] else: if for_a[0] != 0: line_change = 1 temp_list += [[line, for_a[0], for_a[1]]] result = '
| ' + first + ' ➤ ' + second + ' | |
| ' line = 0 for for_a in diff_data_2: if line == 0: line = for_a[0] result += str(line) + ' | ' else: if line != for_a[0]: line = for_a[0] result += ' |
| ' + str(line) + ' | ' if for_a[1] == 1: result += '' + html.escape(for_a[2]) + '' elif for_a[1] == 0: result += html.escape(for_a[2]) else: result += '' + html.escape(for_a[2]) + '' result += ' |