~cytrogen/kobo-manga

cce444335088a0bc6a017d58363a24eccac86b0a — HallowDem 7 days ago d07d4cc
feat(utils): shared parse_chapter_range + sanitize_filename

Used by CLI, web download handler, and background task worker.
1 files changed, 20 insertions(+), 0 deletions(-)

A src/kobo_manga/utils.py
A src/kobo_manga/utils.py => src/kobo_manga/utils.py +20 -0
@@ 0,0 1,20 @@
"""共享工具函数"""


def sanitize_filename(name: str) -> str:
    """清理文件名中的非法字符。"""
    return "".join(
        c if c.isalnum() or c in " _-()()【】" else "_" for c in name
    )


def parse_chapter_range(chapters: str) -> tuple[float, float]:
    """解析章节范围字符串。

    支持格式: "1-10", "5", "0-2.5"
    """
    if "-" in chapters:
        parts = chapters.split("-", 1)
        return float(parts[0]), float(parts[1])
    num = float(chapters)
    return num, num