# dsh-jmcomic 简体中文 · [English](./README.md) 一个 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 插件。 在侧栏加一个漫画按钮:搜索下载禁漫(JMComic / 18comic)、浏览本地漫画库, 并直接在 DSH 里开窗阅读。 插件自带下载内核和阅读器前端,不装 jmcomic 的 pip 包也能跑。 ## 兼容性 在 **DSH 0.1.5-rc.1**(web profile)上实测通过,0.1.2-rc.1 上也能正常运行。 这两个版本就是 `package.json` 里 `dsh.engines.dsh` 声明的范围,宿主和插件管理器 不必解析这份文档就能读到同样的信息。 用到 `sidebar.footer.action` 与 `settings.section` 两个槽位、宿主的 `workspaces.pickDirectory`,以及 `webServer.register` 注册本地路由。 没有改动 DSH 本体。 ## 安装 1. 安装插件: ```bash dsh plugin --profile web add github:lywusichen/dsh-jmcomic ``` 2. 重启 DSH。 3. 侧栏底部(技能按钮上方)会出现漫画按钮。首次使用会让你选一个本地漫画库目录; 如果没自动识别到 Python,去 **设置 → jmcomic 设置** 里填路径。 ## 功能 - **小窗** —— 用编号或名称搜索并下载。绑定本地文件夹后,小窗会显示最近看的两三本 封面,点封面直接开始读。 - **漫画库大窗** —— 本地文件夹里全部漫画的网格。点封面进去看章节列表。 - **阅读器** —— 拖任意边或角调整大小,拖标题栏移动,尺寸和位置会记住。重新打开 同一本会回到上次读到的章节和页数,底部还有页码跳转框。 - 悬停卡片会出现删除按钮。只允许删库目录下的漫画,根目录和系统目录受保护。 - 下载进行时,窗口顶部显示 `downloading` 横幅。 ## 截图 ![侧栏漫画按钮](assets/comic-trigger.png) ![小窗:搜索与本地封面](assets/comic-pop.png) ![漫画库大窗](assets/comic-library.png) ## 离线运行 插件在 `vendor/` 下内置了四样东西,所以一台只有 DSH 和 Python 的机器就能跑: - `jmcomic` 2.7.3 源码 —— 下载内核 - `commonX` —— 内核的支撑包 - `jmcomic-ai` —— 辅助脚本 - 阅读器前端 缺二进制依赖时会降级,而不是直接失败: | 缺失 | 行为 | |---|---| | curl_cffi | 改用 `requests` | | Pillow | 不解码图片,文件能下但不能预览 | | pycryptodome | 提示安装 | ## 已知限制 - 需要 Python。插件通过一个 Python 桥接层调用下载内核,没有用 JavaScript 重写它。 - 下载直连禁漫的 APP API 域名,因此不需要代理,也不需要绕 Cloudflare。如果你的 网络封了该域名,插件没有备用通道。 - 插件不替你管理漫画库:它只下载到你绑定的目录,并读取那里已有的内容。 ## 构建 ```bash npm install # esbuild npm run build # 生成 lib/client.js 和 lib/server.cjs ``` 两个产物都要提交进仓库。git 方式安装直接消费它们。 ## 配置 - 设置文件:`~/.dsh/plugins/dsh-jmcomic/settings.json`(Windows) - 目录规则:`Bd/{Atitle}/第{Pindex}話` - 并发刻意压低:图片 3,写真集 1。 ## 声明 下载内核、阅读器前端和部分辅助脚本来自 hect0x7 的项目,已内置在 `vendor/` 目录: - [JMComic-Crawler-Python](https://github.com/hect0x7/JMComic-Crawler-Python) —— 下载内核 - [jm-view-server](https://github.com/hect0x7/jm-view-server) —— 阅读器前端 - [jmcomic-ai](https://github.com/hect0x7/jmcomic-ai) —— 辅助脚本 版权归原作者所有。 ## 许可 [MIT](LICENSE)