Ejemplo n.º 1
0
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))
Ejemplo n.º 2
0
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))
Ejemplo n.º 3
0
def _get_day_and_month_from(record: StoryRecord) -> tuple:
    assert isinstance(record, StoryRecord)

    return scene_item_of(record, SceneItem.DATE).split('/')
Ejemplo n.º 4
0
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))
Ejemplo n.º 5
0
def _copy_and_change_scene_data_if_same_or_next(
        record: StoryRecord, cache: StoryRecord) -> StoryRecord:
    assert isinstance(record, StoryRecord)
    if not cache:
        return record

    assert isinstance(cache, StoryRecord)

    camera = scene_item_of(record, SceneItem.CAMERA)
    stage = scene_item_of(record, SceneItem.STAGE)
    year = scene_item_of(record, SceneItem.YEAR)
    date = scene_item_of(record, SceneItem.DATE)
    time = scene_item_of(record, SceneItem.TIME)

    if _is_same_tag(camera):
        camera = scene_item_of(cache, SceneItem.CAMERA)

    if _is_same_tag(stage):
        stage = scene_item_of(cache, SceneItem.STAGE)

    if isinstance(year, str) and _is_same_tag(year):
        year = scene_item_of(cache, SceneItem.YEAR)
    elif year in NEXT_YEAR:
        year = str(int(scene_item_of(cache, SceneItem.YEAR)) + 1)

    year = str(year)
    if _is_same_tag(date):
        date = scene_item_of(cache, SceneItem.DATE)
    elif date in NEXT_DAY:
        mon, day = _get_day_and_month_from(cache)
        date = next_day_str_from(year, mon, day)
    elif date in NEXT_WEEK:
        mon, day = _get_day_and_month_from(cache)
        date = after_day_str_from(year, mon, day, 0, 7)
    elif date in NEXT_MONTH:
        mon, day = _get_day_and_month_from(cache)
        date = after_day_str_from(year, mon, day, 1, 0)
    # TODO: after xx

    if _is_same_tag(time):
        time = scene_item_of(cache, SceneItem.TIME)

    return copy_scene_data_of_story_record(record, camera, stage, year, date,
                                           time)