~cytrogen/kobo-manga

查找漫画、下载漫画、转换成 KEPUB,然后发送给 Kobo 的工具。
4e504823 — HallowDem a day ago
Initial commit: kobo-manga pipeline

refs

master
browse  log 

clone

read-only
https://git.cytrogen.icu/~cytrogen/kobo-manga
read/write
ssh://git@git.cytrogen.icu:22222/~cytrogen/kobo-manga

You can also use your local clone with git send-email.

#Kobo Manga Pipeline

自动化漫画下载-转换-导入流水线,从漫画源下载漫画,转换为 KEPUB 推送到 Kobo e-reader。

#功能

  • 插件化漫画源架构,自行开发源适配器
  • 并发下载引擎,支持重试与断点续传
  • 图片处理(裁边、缩放、灰度转换等,可配置)
  • KEPUB 打包(固定布局 EPUB3,RTL 日漫阅读顺序)
  • 传输到 Kobo(USB 直传 / Calibre)
  • 订阅追更与调度

#安装

需要 Python 3.12+ 和 uv

git clone <repo-url>
cd kobo-manga
uv sync

#使用

#搜索漫画

uv run kobo-manga search "漫画名"
uv run kobo-manga search "漫画名" -s <源名称>

#下载

uv run kobo-manga download "漫画名" -c 1-10

#订阅追更

uv run kobo-manga subscribe "漫画名"
uv run kobo-manga subscriptions
uv run kobo-manga update

#本地库

uv run kobo-manga list
uv run kobo-manga config

#源插件开发

本项目采用插件化架构,不内置任何漫画源。用户需自行开发源适配器。

#接口

所有源需继承 BaseSource 并实现以下方法:

from kobo_manga.sources.base import BaseSource
from kobo_manga.sources import register_source
from kobo_manga.models import MangaInfo, Chapter, PageImage


class MySource(BaseSource):
    name = "my_source"
    URL_PATTERNS = ["example.com"]  # 可选,用于从 URL 自动推断源

    async def search(self, keyword: str) -> list[MangaInfo]:
        """搜索漫画,返回结果列表。"""
        ...

    async def get_manga_info(self, manga_url: str) -> MangaInfo:
        """获取漫画详情,包含完整章节列表。"""
        ...

    async def get_chapter_images(self, chapter: Chapter) -> list[PageImage]:
        """获取章节的所有图片 URL。"""
        ...

    async def close(self) -> None:
        """释放资源(如 HTTP 客户端)。"""
        ...


register_source(MySource)

#数据模型

类型字段
MangaInfoid, title, source, url, author, cover_url, description, tags, chapters
Chapterid, title, chapter_number, url, page_count, chapter_type
PageImagechapter_id, page_number, url, local_path

#安装插件

将插件 .py 文件放入 src/kobo_manga/sources/ 目录,程序启动时会自动扫描并加载。

#TODO

  • [ ] Web UI 管理界面
  • [ ] Kobo Sync Protocol(通过 WiFi 无线推送到 Kobo 设备)

#项目结构

src/kobo_manga/
  config.py        - YAML 配置加载
  models.py        - 数据模型
  utils.py         - 公用工具函数
  sources/
    base.py        - 源适配器抽象基类
    __init__.py    - 插件注册与自动发现
  downloader/      - 并发下载引擎 + 重试 + 断点续传
  processor/       - 图片处理流水线
  converter/       - KEPUB 打包
  transfer/        - 设备传输(USB / Calibre)
  scheduler/       - 追更调度
  db/              - SQLite 状态存储
  cli/             - CLI 入口

#技术栈

#许可证

本项目基于 GNU General Public License v3.0 发布。