def _record_as_title_from(record: StoryRecord) -> ActionRecord: assert isinstance(record, StoryRecord) elm = assertion.is_instance(record.type, ElmType) # NOTE: ここは他にも何か情報入れる場合、追加 return ActionRecord( ActType.DATA, DATA_TITLE_TABLE[elm], elm_title_of(record), )
def _record_as_instruction_from(line: str) -> ActionRecord: assert isinstance(line, str) tmp = line.replace('#! ', '') instruction = tmp outline = '' if ' ' in tmp: instruction, outline = tmp.split(' ') return ActionRecord(ActType.DATA, ActDataType.INSTRUCTION, instruction, outline)
def _record_as_payoff_from(record: ActionRecord, tags: dict) -> ActionRecord: assert isinstance(record, ActionRecord) assert isinstance(tags, dict) subject, flag = '', record.outline if ':' in record.outline: subject, flag = record.outline.split(':') if subject: subject = translate_tags_str(subject, tags, True, None) return ActionRecord(ActType.DATA, ActDataType.PAYOFF, subject, flag)
def _record_as_action_from(line: str) -> ActionRecord: assert isinstance(line, str) tmp = line comment = '' if '# ' in line: tmp, comment = line.split('# ') cmd, desc = tmp[1:].split(']') subject, act, outline = cmd.split(':') return ActionRecord(_act_type_from(act), ActDataType.NONE, subject, outline, rid_head_space(desc), note=comment)
def _conv_shorter_by_alias(record: ActionRecord, alias: dict) -> ActionRecord: assert isinstance(record, ActionRecord) assert isinstance(alias, dict) subject = record.subject if record.subject in alias.keys(): subject = alias[record.subject] return ActionRecord( record.type, record.subtype, subject, translate_tags_str(record.outline, alias), translate_tags_str(record.desc, alias), record.flags, translate_tags_str(record.note, alias), )
def _copy_action_record_if_same(record: ActionRecord, cache: ActionRecord) -> ActionRecord: assert isinstance(record, ActionRecord) if not cache: return record assert isinstance(cache, ActionRecord) act_type = cache.type if record.type is ActType.SAME else record.type sub_type = record.subtype subject = cache.subject if _is_same_mark( record.subject) else record.subject outline = cache.outline if _is_same_mark( record.outline) else record.outline desc = record.desc flags = record.flags note = record.note return ActionRecord(act_type, sub_type, subject, outline, desc, flags, note)
def _get_record_as_paragraph_start() -> ActionRecord: return ActionRecord(ActType.DATA, ActDataType.PARAGRAPH_START, '')
def _record_as_text_from(line: str) -> ActionRecord: assert isinstance(line, str) return ActionRecord(ActType.DO, ActDataType.TEXT, '', rid_head_space(line), rid_head_space(line))
def _record_as_scene_year_from(record: StoryRecord) -> ActionRecord: assert isinstance(record, StoryRecord) return ActionRecord(ActType.DATA, ActDataType.SCENE_YEAR, scene_item_of(record, SceneItem.YEAR))
def _get_record_scene_end() -> ActionRecord: return ActionRecord(ActType.DATA, ActDataType.SCENE_END, '')
def _record_as_scene_camera_from(record: StoryRecord) -> ActionRecord: assert isinstance(record, StoryRecord) return ActionRecord(ActType.DATA, ActDataType.SCENE_CAMERA, scene_item_of(record, SceneItem.CAMERA))
def _record_as_head_from(line: str) -> ActionRecord: assert isinstance(line, str) title = line.replace('## ', '') return ActionRecord(ActType.DATA, ActDataType.SCENE_HEAD, title)
def _record_as_comment_from(line: str) -> ActionRecord: assert isinstance(line, str) comment = line.replace('# ', '') return ActionRecord(ActType.DATA, ActDataType.COMMENT, comment)
def _get_record_scene_start() -> ActionRecord: return ActionRecord(ActType.DATA, ActDataType.SCENE_START, '')
def _get_record_as_br() -> ActionRecord: return ActionRecord(ActType.DATA, ActDataType.BR, '\n')
def _get_record_as_paragraph_end() -> ActionRecord: return ActionRecord(ActType.DATA, ActDataType.PARAGRAPH_END, '')
def _record_as_scene_time_from(record: StoryRecord) -> ActionRecord: assert isinstance(record, StoryRecord) return ActionRecord(ActType.DATA, ActDataType.SCENE_TIME, scene_item_of(record, SceneItem.TIME))