53 lines
1.8 KiB
Python
53 lines
1.8 KiB
Python
|
from parse.StoryMap import StoryMap, ModifyReason, FragmentSlice
|
||
|
from typing import Dict, List
|
||
|
|
||
|
|
||
|
class CmpTool:
|
||
|
def __init__(self):
|
||
|
pass
|
||
|
|
||
|
def graph_compare(self, graph_new: Dict[str, StoryMap], graph_old: Dict[str, StoryMap]):
|
||
|
fragments_has_removed = []
|
||
|
for story in graph_old.values():
|
||
|
fragments_has_removed = fragments_has_removed + self.__event_remove_check(graph_new, story)
|
||
|
pass
|
||
|
|
||
|
fragments_has_appended = []
|
||
|
for story in graph_new.values():
|
||
|
fragments_has_appended = fragments_has_appended + self.__event_append_check(graph_old, story)
|
||
|
pass
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
pass
|
||
|
|
||
|
def __event_remove_check(self, graph_new: Dict[str, StoryMap], story_old: StoryMap) -> List[FragmentSlice]:
|
||
|
list_retv = []
|
||
|
for slice in story_old.slice_list[1:]:
|
||
|
if slice.is_define_node[0]:
|
||
|
s_name = story_old.story_name
|
||
|
f_name = slice.is_define_node[1]
|
||
|
story_findout = graph_new[s_name]
|
||
|
if story_findout is None or story_findout.get_fragment_defined(f_name) is None:
|
||
|
list_retv.append(slice)
|
||
|
pass
|
||
|
pass
|
||
|
pass
|
||
|
return list_retv
|
||
|
|
||
|
def __event_append_check(self, graph_old: Dict[str, StoryMap], story_new: StoryMap) -> List[FragmentSlice]:
|
||
|
list_retv = []
|
||
|
for slice in story_new.slice_list[1:]:
|
||
|
if slice.is_define_node[0]:
|
||
|
s_name = story_new.story_name
|
||
|
f_name = slice.is_define_node[1]
|
||
|
story_findout = graph_old[s_name]
|
||
|
if story_findout is None or story_findout.get_fragment_defined(f_name) is None:
|
||
|
list_retv.append(slice)
|
||
|
pass
|
||
|
pass
|
||
|
pass
|
||
|
return list_retv
|
||
|
|
||
|
def __event_changed_check(self,):
|