Beispiel #1
0
def outputs_data_from_contents_data(
        contents_data: ContentsData) -> OutputsData:
    assert isinstance(contents_data, ContentsData)

    formatted = assertion.is_list(format_contents_data(contents_data))

    return OutputsData(formatted + get_breakline_list())
Beispiel #2
0
def _get_base_info_title() -> OutputsData:

    tmp = []

    tmp.append("Base info\n===\n\n")

    return OutputsData(tmp)
Beispiel #3
0
def _conv_plot_char_counts(story_data: StoryData, tags: dict, columns: int,
                           rows: int) -> OutputsData:
    assert isinstance(story_data, StoryData)
    assert isinstance(tags, dict)
    assert isinstance(columns, int)
    assert isinstance(rows, int)

    plots = plots_data_from(story_data)
    formatted = outputs_data_from_plots_data(plots, tags)
    plot_counts = counts_data_from(BuildType.PLOT, formatted, columns, rows)
    if not plot_counts or not plot_counts.has_data():
        logger.error(
            msg.ERR_FAIL_INVALID_DATA.format(data=f"plots count in {PROC}"))
        return None

    char_counts = OutputsData(format_plots_charcounts_data(plot_counts))
    if not char_counts or not char_counts.has_data():
        logger.error(
            msg.ERR_FAIL_INVALID_DATA.format(
                data=f"plots char count in {PROC}"))
        return None

    return char_counts
Beispiel #4
0
def _conv_novel_char_counts(actions_data: ActionsData, tags: dict,
                            columns: int, rows: int) -> OutputsData:
    assert isinstance(actions_data, ActionsData)
    assert isinstance(tags, dict)
    assert isinstance(columns, int)
    assert isinstance(rows, int)

    novels = novels_data_from(actions_data, tags)
    formatted = outputs_data_from_novels_data(novels, tags)
    novel_counts = counts_data_from(BuildType.NOVEL, formatted, columns, rows)
    if not novel_counts or not novel_counts.has_data():
        logger.error(
            msg.ERR_FAIL_INVALID_DATA.format(data=f"novels count in {PROC}"))
        return None

    char_counts = OutputsData(format_novels_charcounts_data(novel_counts))
    if not char_counts or not char_counts.has_data():
        logger.error(
            msg.ERR_FAIL_INVALID_DATA.format(
                data=f"novels char count in {PROC}"))
        return None

    return char_counts
Beispiel #5
0
def outputs_data_from_scripts_data(scripts_data: ScriptsData, tags: dict,
        is_comment: bool = False) -> OutputsData:
    assert isinstance(scripts_data, ScriptsData)
    assert isinstance(tags, dict)

    _PROC = f"{PROC}: convert outputs data"
    logger.debug(msg.PROC_START.format(proc=_PROC))

    formatted = format_scripts_data(scripts_data, is_comment)

    translated = translate_tags_text_list(formatted, tags)

    logger.debug(msg.PROC_SUCCESS.format(proc=_PROC))
    return OutputsData(translated)
Beispiel #6
0
def outputs_data_from_status_infos_data(infos_data: InfosData, tags: dict,
        is_comment: bool = False) -> OutputsData:
    assert isinstance(infos_data, InfosData)
    assert isinstance(tags, dict)
    assert isinstance(is_comment, bool)

    _PROC = f"INFO STATUS: convert outputs data"
    logger.debug(msg.PROC_START.format(proc=_PROC))

    formatted = format_status_info_data(infos_data, is_comment)

    translated = translate_tags_text_list(formatted, tags)

    logger.debug(msg.PROC_SUCCESS.format(proc=_PROC))
    return OutputsData(translated)
Beispiel #7
0
def outputs_data_from_plots_data(plots_data: PlotsData,
                                 tags: dict) -> OutputsData:
    assert isinstance(plots_data, PlotsData)
    assert isinstance(tags, dict)

    _PROC = f"{PROC}: convert outputs data"
    logger.debug(msg.PROC_START.format(proc=_PROC))

    formatted = format_plots_data(plots_data)
    if not formatted:
        logger.error(
            msg.ERR_FAIL_INVALID_DATA.format(data=f"outputs data in {PROC}"))
        return None

    translated = translate_tags_text_list(formatted, tags)

    logger.debug(msg.PROC_SUCCESS.format(proc=_PROC))
    return OutputsData(translated)
Beispiel #8
0
def counts_data_from(build_type: BuildType, outputs_data: OutputsData,
                     columns: int, rows: int) -> CountsData:
    assert isinstance(build_type, BuildType)
    assert isinstance(outputs_data, OutputsData)
    assert isinstance(columns, int)
    assert isinstance(rows, int)

    _PROC = f"{PROC}: counts data"
    logger.debug(msg.PROC_START.format(proc=_PROC))

    tmp = []

    indexes = {
        ElmType.BOOK: 0,
        ElmType.CHAPTER: 0,
        ElmType.EPISODE: 0,
        ElmType.SCENE: 0,
    }
    titles = {
        ElmType.BOOK: [""],
        ElmType.CHAPTER: [""],
        ElmType.EPISODE: [""],
        ElmType.SCENE: [""],
    }
    descs = {
        ElmType.BOOK: [""],
        ElmType.CHAPTER: [""],
        ElmType.EPISODE: [""],
        ElmType.SCENE: [""],
    }

    heads = NOVEL_HEADS if build_type in NOVEL_BUILDS else OUTLINE_HEADS

    for record in outputs_data.get_data():
        assert isinstance(record, str)
        if record.startswith(heads[ElmType.BOOK]):
            indexes[ElmType.BOOK] += 1
            titles[ElmType.BOOK].append(
                _get_title_from(heads, ElmType.BOOK, record))
            descs[ElmType.BOOK].append('')
        elif record.startswith(heads[ElmType.CHAPTER]):
            indexes[ElmType.CHAPTER] += 1
            titles[ElmType.CHAPTER].append(
                _get_title_from(heads, ElmType.CHAPTER, record))
            descs[ElmType.CHAPTER].append('')
        elif record.startswith(heads[ElmType.EPISODE]):
            indexes[ElmType.EPISODE] += 1
            titles[ElmType.EPISODE].append(
                _get_title_from(heads, ElmType.EPISODE, record))
            descs[ElmType.EPISODE].append('')
        elif record.startswith(heads[ElmType.SCENE]):
            indexes[ElmType.SCENE] += 1
            titles[ElmType.SCENE].append(
                _get_title_from(heads, ElmType.SCENE, record))
            descs[ElmType.SCENE].append('')
        elif '<!--' in record:
            # NOTE: コメント
            continue
        else:
            # Text (Contains Spin)
            descs[ElmType.BOOK][indexes[ElmType.BOOK]] += record
            descs[ElmType.CHAPTER][indexes[ElmType.CHAPTER]] += record
            descs[ElmType.EPISODE][indexes[ElmType.EPISODE]] += record
            descs[ElmType.SCENE][indexes[ElmType.SCENE]] += record

    is_plot = BuildType.PLOT is build_type

    for elm in [ElmType.BOOK, ElmType.CHAPTER, ElmType.EPISODE, ElmType.SCENE]:
        tmp.extend(
            _counts_data_from_by_elm(elm, titles[elm], descs[elm], columns,
                                     rows, is_plot))

    logger.debug(msg.PROC_SUCCESS.format(proc=_PROC))
    return CountsData(tmp)