Skip to content

Releases: Compromisee/Mangasurf

v1.8.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 17:48

[1.8.0] — Mangasurf - Arctica v1.8.0

OPDS for OPDS reader apps, as a one-tap link

  • The OPDS catalog URL is now both copy-able and clickable. A new
    "Open in Reader App" link embeds the access token as basic-auth credentials
    (http://reader:<token>@<host>:8578/opds), so Thorium, Readest, Panels,
    Aldiko and KyBook open the catalog on the first tap with no prompt.
  • Tailscale gets its own one-tap link too, for readers on your tailnet.

Read-state chapter list on the manga page

  • Fully-read chapters are highlighted amber-yellow.
  • Chapters that are fully-read and downloaded are highlighted blue.
  • Partially-read chapters render as an in-row horizontal progress bar filled
    to the read fraction.
  • Read state is supplied per chapter by get_manga (chapter_state), keyed by
    chapter URL / name / 1-based index, combining tracking (read/unread) and the
    reader's saved position fraction.

Read button + reader

  • The prominent Read button now defaults to the first chapter when
    reading online, instead of the last.
  • The reader's Chapters tab now lists every online chapter of the series
    (with read-state) alongside local sibling folders/archives, and lets you jump
    between chapters without leaving the reader.
  • Finished online chapters are auto-marked read (past ~98% or when the reader
    reports the end), so the highlights stay accurate.

Branding & website

  • Release branded "Mangasurf - Arctica", version bumped to 1.8.0.
  • Website rebuilt in a retro-cool, rustic, beautiful theme.
  • Roadmap updated with the v1.8.0 (Arctica) milestones.

[1.8.0] — Chapter-list polish, fresh-open fix & reader crash safety

Chapter-list polish

  • Every chapter row is now its own progress bar: a solid translucent fill
    (no gradient) up to the read fraction, painted underneath the row's
    text and buttons so everything stays readable. Unread = 0%, partial = read
    fraction (dashed border), fully-read = 100% amber wash, read+downloaded =
    100% blue wash.
  • Chapter rows are centered with more padding, and a new chapter-row size
    slider
    in Settings (--ch-row) drives row height and the Read Online
    button, so the list scales as one.

Fresh chapter opens on page 1 (was the last page)

  • Picking a chapter from the chapter list no longer inherits the previous
    chapter's scroll offset and lands on the last page. manga-view.open()
    now resets scroll to 0 (suppressing the scroll events that used to derive the
    page from leftover scrollTop), and openPath(..., { resume: false }) skips
    position restore for chapter-list navigation.
  • Reopening the same book/chapter from the library or Continue-Reading still
    resumes where you left off.

"Read" only when fully read

  • The Read pill (manga page and in-reader chapter list) now appears only
    for chapters that are genuinely finished — in the tracker's read set
    (mark_read fires at the end) or whose position has reached the finish line.
    A chapter merely partway through its progress shows the progress fill, never
    a false Read tag.

Crash handlers & safety guards

  • Global error and unhandledrejection handlers now surface and de-duplicate
    any uncaught fault (toast + window.__readerCrash record) instead of leaving
    a frozen, silent UI.
  • openPath is wrapped so a throw in the open pipeline is reported and
    contained; malformed or empty chapter payloads no-op safely.

Tests

  • Playwright reader-shell tests added: fresh-open-on-page-1, resume-on-reopen,
    partial chapter gets no Read pill (manga page + reader list), fully-read gets
    the pill, rejected promise caught & reported, backend failure degrades to a
    toast, post-call throw caught and reported, and a malformed chapter is
    survived.

v1.7.3

Choose a tag to compare

@github-actions github-actions released this 25 Aug 00:53
ed87e6b

[1.7.3] — Mangasurf v1.7.3: Per-Chapter Downloaded Counts, Four New Verified Sources, Docs Hub & UI Polish

Search results now show the real downloaded chapter count

  • Fixed the "1 chapter downloaded" badge. Search result cards used to count
    files, so a single bundled CBZ (which holds many chapters) showed "1
    Downloaded" even though the manga detail view correctly showed the full
    count. The card badge is now corrected against the same authoritative
    downloaded_status the detail view uses (read from each series'
    manga.json), and getDownloadedMeta prefers the larger of file count /
    chapter count. The card and detail view always agree now.

New sources (38 total)

  • Added manhwa68 (Madara engine) — verified search / browse / genres /
    chapters / CDN pages.
  • Added manhwabuddy — verified search / series / chapters / page CDN.
  • Added hentai18 — verified NSFW search / series / chapters / page CDN.
  • Added comicland — verified REST-API source (search / browse / detail /
    pages_by_index), Referer-protected.
  • Added yurivan — best-effort; Yurivan gates every page behind a
    client-side age gate, so this source degrades gracefully and is marked
    unverified. Prefer the other adult sources.
  • Removed the fake kings and kamiya sources (already removed in 1.7.2).

curl_cffi HTTP layer (carried forward and hardened)

  • 100% curl_cffi; requests fully removed. mangasurf/http.py is the single
    network layer with browser TLS/JA3+JA4 impersonation and a fast async
    batch engine (fetch_many / download_many) used by the downloader.

Documentation Hub & website

  • Added a Documentation hub to the landing page linking to self-contained
    doc pages: getting-started, sources, http-engine, downloading, roadmap,
    troubleshooting.
  • Regenerated the README source table and landing-page source directory from
    the live registry (rows can no longer drift).
  • Updated CHANGELOG, ROADMAP, TODO and FEATURES.

UI & fixes

  • Targeted padding/responsiveness polish in the reader shell and source grid.
  • Custom horizontal + vertical scrollbars site-wide — a thin accent-gradient
    thumb on a dark track (Chromium/Safari ::-webkit-scrollbar + Firefox
    scrollbar-width), so wide code blocks, cards and tables scroll cleanly.
  • Expandable docs sidebar tree — every documentation page now carries a
    sticky, collapsible tree sidebar (like most docs sites) listing all six doc
    pages and their on-page sections. The current page's branch is expanded and
    highlighted; the others deep-link into their anchors. On narrow screens the
    tree collapses behind a "Documentation contents" drawer toggle.
  • Version bumped to 1.7.3; requires-python >=3.11.

Scraper fixes (this batch)

  • Fixed mangadotnet — the /api/search and /api/manga endpoints return
    a manga_list array (not data/results), which the old parser ignored, so
    search/browse always returned 0 results. Now reads manga_list.
  • Fixed witchscans (witchtoons) result titles — the search page is a
    Next.js SPA returning HTML (never JSON), and the fallback parser read the
    whole card's text, so every result was titled the type badge ("MANHWA") or a
    chapter label. Titles now come from the cover img[alt] (with anchor/@title
    fallback), chapter links are skipped, and Next.js /_next/image proxy cover
    URLs are decoded to the real CDN URL.
  • Fixed hentai18 result titles — the series cards carry absolute URLs
    (https://hentai18.net/read-hentai/<slug>) that a relative-path-only regex
    rejected, so only the sidebar "Oneshot"/"Chapter N" rows survived. The path
    regex now accepts both, and titles come from the cover img[alt].
  • Fixed missing covers on manhwa68, hentai18, yurivan — their cover
    CDNs 403 a cross-origin browser request (a wrong Referer), so the thumbnails
    never rendered. All three hosts are now routed through the proxy_cover
    path, which fetches with the source's own Referer.
  • Fixed one-page "No More Results" bugs — several sources ignored the
    page argument and always returned the first page:
    • comicland — API pages on a row index, not ?page=; paginates by
      offset now, and the static /comics/popular list falls back to the
      paginated /comics feed.
    • mangatitan — pages ≥2 use a blog-archive layout (.entry-archive)
      instead of the .series-card grid; both are parsed now, and per-chapter
      posts are deduped to unique series.
    • yurivan — browse/search sliced [:limit] so every page repeated page 1;
      now slices by page (and search pages by offset).
    • mangak — search already paginated; trending browse is a static top-50
      list by design (no server paging).
  • Cloudflare-only sites (kagane, comix) remain behind a real browser
    JS challenge that TLS impersonation alone cannot pass — they require the
    FlareSolverr fallback. mangadotnet and natomanga now work regardless;
    hentaiakane.com was taken over by an unrelated blog, so the hentaiakane
    source has been replaced by mewhen18 (https://mewhen18.com), the same
    catalogue re-hosted — same theme, same img.hentai1.io image CDN.

Mangasurf V1.7.0

Choose a tag to compare

@github-actions github-actions released this 21 Aug 01:17
9930498

Mangasurf V1.7.0 — Desktop Manga Reader & Downloader

High-performance Python manga ecosystem, omnibar discovery engine, and multi-threaded downloader supporting 32 registered sources.


What's Changed

  • 32 Registered Sources: High-speed scrapers across MangaDex, Chikari, KuraManga, KuraHentai, Hiperdex, MangaK, etc.
  • Curated List Bulk Downloading: One-click download for lists (e.g. Chikari list 461).
  • 3D Depth Library Carousel: Smooth 7-perspective cards with luminous glow, reading progress, and shelf pills.
  • Offline Database Integration: Instant omnibar suggestions and offline SFW/Hentai indexing.
  • LAN Web Reader & OPDS 1.2 Hub: Native phone reader server (:8577) & OPDS catalog (:8578) with live device telemetry.
  • Zero-Deletion Root Safety: Protected master root directories (~/Manga, /media, output_dir).
  • Custom Vector Icon: New dynamic MangaSurf wave crest & anime speed prism icon.

Available Downloads

Warning

MacOS X86 is NOT Supported as of yet. We are working on implementing it in the near future

Platform Architecture Download Package Standalone Executable
Windows x64 (64-bit) mangasurf-V1.7.0-windows-x64.zip mangasurf-windows-x64.exe
Linux x86_64 (glibc 2.35+) mangasurf-V1.7.0-linux-x86_64.tar.gz mangasurf-linux-x86_64
macOS Apple Silicon (M1/M2/M3/M4) mangasurf-V1.7.0-macos-arm64.zip mangasurf-macos-arm64

Quick Start (No Python Required)

  1. Download the archive for your operating system above.
  2. Extract and run mangasurf (or double-click mangasurf.exe on Windows).
  3. Enjoy reading with the 3D Depth Carousel, Foliate webtoon viewer, LAN Phone Server (:8577), or OPDS 1.2 Catalog (:8578)!
# CLI search & download
./mangasurf search "solo leveling"
./mangasurf "https://chikari.moe/lists/461-my-manhwa-list"

Mangasurf Bleeding-Edge Nightly Build

Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Aug 01:09
0e2a9e2

🌙 Mangasurf Nightly Build

  • Build Commit: b3f4fb7ccf753ff9ffc03a74b88336378a4ed2af
  • Build Timestamp: Latest

⚠️ Nightly builds contain bleeding-edge changes and may be unstable. For daily use, prefer official tagged releases.

📦 Binaries

  • mangasurf-nightly-windows-x64.zip
  • mangasurf-nightly-linux-x86_64.tar.gz
  • mangasurf-nightly-macos-arm64.zip