Back to home

lywusichen

dsh-jmcomic

DeepSeek Harness 插件:JMComic 搜索下载、本地漫画库、窗内阅读器,内置源码离线可用。

Stars
0
Language
JavaScript
Created
Aug 16, 2026
Updated
Aug 16, 2026

Introduction

dsh-jmcomic

English · 日本語 · 简体中文

A DeepSeek Harness plugin: a comic trigger in the sidebar footer that adds search & download, an importable local library, and an in-modal manga reader for JMComic (18comic).

Features

  • Sidebar button: "comic" trigger in the sidebar footer (above the skills button).
  • Small panel: search box (album ID / title) + "Import local folder" button; once a folder is bound, shows 2–3 recent covers + a "More" button.
  • Large modal: centered blurred-background grid of every comic in the local folder; click any comic to list chapters, then read inside the modal (reuses the jm-view-server reader: scroll / single / double page, thumbnail overview, rotate, hotkeys).
  • Settings: Settings → Plugins → Plugin Configuration → jmcomic card to change the default folder and Python path; the large modal also has a "Change folder" button.
  • First-run hint: when a complete jmcomic environment is not detected, a one-time dialog recommends installing it (with the GitHub link).
  • Draggable: both the small panel and the large modal can be dragged around.
  • Delete: hover a library card to reveal a delete button (guarded: only albums under the base dir, never the root or system directories).
  • Download banner: while downloads run, "downloading …" is shown at the top of both the small panel and the large modal.

Screenshots

Sidebar comic trigger

Small panel: search + local covers

Large modal: local library grid

Offline-first

The plugin bundles:

  • vendor/python/jmcomic — JMComic-Crawler-Python 2.7.3 source
  • vendor/python/common — commonX pure-Python source
  • vendor/python/jmcomic_ai — jmcomic-ai package (for bundled helper scripts)
  • vendor/scripts/*.py — download / search / convert scripts
  • vendor/viewer/static — jm-view-server reader frontend

It therefore works even without the jmcomic PyPI package installed. Missing binary deps degrade automatically:

MissingFallback
curl_cffipostman uses requests
Pillowimage decode disabled (files download but cannot be previewed)
pycryptodomeprompts for install

Install

dsh plugin --profile web add github:lywusichen/dsh-jmcomic

Build

npm install   # devDependency: esbuild
npm run build # -> lib/client.js + lib/server.cjs (committed)

Self-check

node selfcheck.cjs   # verifies all /jmcomic/* routes against a stub ctx

Configuration

  • Settings file: ~/.dsh/plugins/dsh-jmcomic/settings.json (Windows)
  • Download strategy (battle-tested): client.impl: api direct connection, Bd/{Atitle}/第{Pindex}話 directory rule, low concurrency (image 3 / photo 1).

Disclaimer

This plugin's download engine, reader frontend, and helper scripts are built with reference to (and in some parts adapted from) the open-source projects of hect0x7:

  • JMComic-Crawler-Python — vendored download core (vendor/python/jmcomic, commonX)
  • jm-view-server — vendored reader frontend (vendor/viewer/static)
  • jmcomic-ai — vendored helper scripts & service layer (vendor/python/jmcomic_ai, vendor/scripts)

All rights of the original projects belong to their respective authors. This plugin is an independent integration that vendors those sources for offline operation under their original licenses.

Credits