J}P7(R<+XZY}y
z8+sW+(IpYd4yFKlPGb-(@pOt=?F;qT)ffgZqb+cDr(3wWvYp$axlw{9Wc>iPqhw%z
zL4L0GR`w6!++R^!xv4B~{k;Z_Fd2A4OacNCLzZA}9!q$lY2<{b^;8jvqn$`m63Y`?
zUN%y?6Jvuw+o_DzY47u7a*U82+@ahq`yph40Q6K_H`Lye+Pk3+mDHi)*mL!LS4o9i
z@c&eC0ED1n0FHjcfH&wDtjpi%)ol3B8aAFl&O3GNFRA?->PSf)DW2b<<5WbYU2v2J
z5p*Nihk&Ql5Mn%y4j|Tp0F%?sFU%;40E3ae2LSU+w(|?7YAYnx`mq}3S5-y)^p0G^
ziw(KvghlNH?EHgVlMIjHMJGbWDUfk$#uM>c>L<*+g7wi-u|O`z%$p7Vli>mn(cAo$
z#-uYH8K9Qyg42BRVoqFA;CRz`T3_cS6DtfKOIT=|Mow~q8&cZkV|N6R-iUbU7~HVr
zG{m_jQzNERl*5v)UA|;%5l=BQBHKllpXItO#1nNbu>dgCEDXbT4*D;<$1#SR;pj(p
z3;;xaPZ$brV6$`IL$!FI+&NZIE1i97r&muuI8#tJdj=l+9{Gv~%RPtin41$GYCt1Q
z&AY7)n4!4bs8<2`H+c_6uJh4FbY)&JT?1{`glQ;sQ`tZi9D4oeT=c9NPZ|`fAymM_
zFj>k9`k4oAJ&!D3%rvQnCmXUUuxO+V8Z!;PmF;#7)IdK3OxY*^uu@mg+U3>D8(m|i
zuCev@a@WZp_msLmEciCt_ufDC&FyFE08fbqd!P>79!EgC|7MT8kQ2_4xv#+{7=FmD
zY3QPBJBiy)+P0l8=cFv0cTVKxckoc$6G~2j_n-shJvn*F4e0Gha~|icK<)))@(zyf
zsk}Gmt#ed!>R)S+_aVo7D>797h<7UMM_)%7{_S;Ws1$ntX@S^|C@ErsI_3E#0=>}_88EkAFq_+QB^87HgF
zc|?nwMv_?yUt0l}j7%8*6=5#g!~Pj+Up8W2YMeV~nC)?cuW2U=x7l|9ApC-%wYk-~
zjo`sj@ZfrXIe4Pre;M4rMOu6lh4Yor;N!kWeZ?=zp~LI3Qs_wG;%4uG;qHN=M&DN3_%t{Xu@-F;VI0swzOQs$_8F@%2a7
z*Zax?6NRZtXl#oJfr str:
- self.ast_inst.xpath
+ def generate_time(self) -> str:
+ attr_time = self.ast_inst.xpath("/ast[1]/@time")[0]
+ return str(attr_time)
+
+ def peak_storylines(self) -> List[StorySlice]:
+ story_list = self.ast_inst.xpath("/ast/story") # 获取所有故事节点
+
+ story_items = []
+ for story in story_list:
+ story_name = story.xpath("@name")[0]
+ story_slice = StorySlice("story:"+story_name)
+ story_items.append(story_slice)
+
+ story_text_lines = story.xpath("text-section/@text") # 获取所有描述
+ for line in story_text_lines:
+ story_slice.append_text_section(line)
+ pass
+
+ fragment_items = story.xpath("fragment") # 获取所有情节定义
+ for fragm in fragment_items:
+ fragment_name = fragm.xpath("@name")
+ fragm_slice = FragmentSlice("fragment:"+story_name+"#"+fragment_name)
+ fragm_text_lines = fragm.xpath("text-section/@text")
+ for line in fragm_text_lines:
+ fragm_slice.append_text_section(line)
+ pass
+ pass
+ pass
+
+ fragm_refers = self.ast_inst.xpath("//refer")
+ for refer in fragm_refers:
+ story_name = refer.xpath("@story")
+ fragm_name = refer.xpath("@fragment")
+ story_refers = items_filter(story_items, lambda x:x.signature == f"story:{story_name}")
+ if(len(story_refers) > 0):
+ story_refer = story_refers[0]
+
+
+ return story_items