From 999ee674a3ddf6647fc8a25052dee576a77a7d61 Mon Sep 17 00:00:00 2001 From: sctop <2094880085@qq.com> Date: Sat, 27 Jan 2024 15:25:39 +0800 Subject: [PATCH] interpage update (see generator) --- data_export | 2 +- data_model/actual_data/battle.py | 22 +++++++++++++++++++++ data_model/actual_data/story.py | 33 +++++++++++++++++++++++++++++++- 3 files changed, 55 insertions(+), 2 deletions(-) diff --git a/data_export b/data_export index 36f9d22..0c42c16 160000 --- a/data_export +++ b/data_export @@ -1 +1 @@ -Subproject commit 36f9d2271e3e0aa5a3c69cd2fbbeaeb1c5c6f9e3 +Subproject commit 0c42c161054d4ce547de84c53d723e22b68b697b diff --git a/data_model/actual_data/battle.py b/data_model/actual_data/battle.py index 27ea9e6..8b53910 100644 --- a/data_model/actual_data/battle.py +++ b/data_model/actual_data/battle.py @@ -95,6 +95,28 @@ def _get_instance_offset(self, offset: int): except IndexError: return None + def get_mixed_interpage_data(self, prev, next): + def get_chapter(obj): + try: + return obj.chapter + except AttributeError: + return "[NO_PREV]" + + return { + "prev": { + "name": prev.name.to_json_basic() if prev else "[NO_PREV]", + "namespace": prev.namespace if prev else "[NO_PREV]", + "chapter": get_chapter(prev), + "no": prev.no if prev else "[NO_PREV]" + }, + "next": { + "name": next.name.to_json_basic() if next else "[NO_NEXT]", + "namespace": next.namespace if next else "[NO_NEXT]", + "chapter": get_chapter(next), + "no": next.no if next else "[NO_NEXT]" + } + } + class SchoolExchangeInfo(BaseBattleInfo): _instance = {} diff --git a/data_model/actual_data/story.py b/data_model/actual_data/story.py index 091599d..07d2579 100644 --- a/data_model/actual_data/story.py +++ b/data_model/actual_data/story.py @@ -255,6 +255,22 @@ def interpage_next(self): ref_data = self.data["interpage"]["next"] return ReferenceData(*self.process_reference_data(ref_data)).ref_instance + def get_mixed_interpage_data(self, prev, next): + return { + "prev": { + "name": prev.name.to_json_basic() if prev else "[NO_PREV]", + "namespace": prev.namespace if prev else "[NO_PREV]", + "is_battle": prev.is_battle if prev else "[NO_PREV]", + "pos": prev.pos.to_json_basic() if prev else "[NO_PREV]" + }, + "next": { + "name": next.name.to_json_basic() if next else "[NO_NEXT]", + "namespace": next.namespace if next else "[NO_NEXT]", + "is_battle": next.is_battle if next else "[NO_NEXT]", + "pos": next.pos.to_json_basic() if next else "[NO_NEXT]" + } + } + class StoryInfoBond(FileLoader, IParentData, InterpageMixin): """Basically a modified class from StoryInfo""" @@ -308,7 +324,6 @@ def _get_instance_id(data: dict): return "_".join(["BOND", *story_pos]) def _get_instance_offset(self, offset: int): - # TODO return StoryInfo._get_instance_offset(self, offset) def parent_data_to_json(self): @@ -352,3 +367,19 @@ def to_json_basic(self): @classmethod def get_instance(cls, instance_id): return super().get_instance(instance_id) + + def get_mixed_interpage_data(self, prev, next): + return { + "prev": { + "name": prev.name.to_json_basic() if prev else "[NO_PREV]", + "namespace": prev.namespace if prev else "[NO_PREV]", + "is_memory": prev.is_memory if prev else "[NO_PREV]", + "pos": prev.pos.to_json_basic() if prev else "[NO_PREV]" + }, + "next": { + "name": next.name.to_json_basic() if next else "[NO_NEXT]", + "namespace": next.namespace if next else "[NO_NEXT]", + "is_memory": next.is_memory if next else "[NO_NEXT]", + "pos": next.pos.to_json_basic() if next else "[NO_NEXT]" + } + }