- Upgrade playwright-go v0.5200.1 -> v0.6100.0 (module path changed
from playwright-community to mxschmitt). The old Azure CDN driver
download endpoint returns 404 for all versions; v0.6100.0 switches
to npm registry which works correctly.
- Fix file:// resource loading: replace absolute path src="/..."
and href="/..." with full URLs so browser can fetch remote
resources (chapterlog.js) when loading local HTML files.
- Replace removed Devtools field with Args --auto-open-devtools-for-tabs.
- Include error details in playwright install failure log.
- Fix nil pointer in tests: check err before calling SetTextOnly.
- Update all dependencies: goquery, templ, resty, cobra, pflag, etc.
- Bump go toolchain 1.24.2 -> 1.25.0
This commit introduces NFPM configuration in `.goreleaser.yaml` to
generate native packages for various Linux distributions (e.g., .deb,
.rpm, .apk). This provides a more streamlined installation experience
for Linux users.
The Playwright browser installation logic has been moved from `main.go`
to the `Run` function of the `download` command. This change ensures
that Playwright binaries are only downloaded and installed when the
`download` command is actually invoked, improving initial application
startup performance and reducing unnecessary overhead for other commands.
The Goreleaser configuration has also been updated to version 2 syntax
and the `arm` architecture has been removed from builds.
This commit introduces new features for controlling the download process:
- **Concurrency**: Users can now specify the number of concurrent volume downloads using the `--concurrency` flag. This significantly speeds up the download of entire novels.
- **Headless Mode**: A `--headless` flag has been added to control whether the browser operates in headless mode (without a visible UI). This is useful for debugging or running in environments without a display.
**Changes include:**
- Updated `download` command to accept `--concurrency` and `--headless` flags.
- Refactored `bilinovel` downloader to support `BilinovelNewOption` for configuring headless mode and concurrency.
- Implemented a page pool and concurrency control mechanism within the `bilinovel` downloader to manage concurrent browser page usage.
- Added `DownloadNovel` and `DownloadVolume` methods to the `bilinovel` downloader, utilizing goroutines and wait groups for parallel processing.
- Updated `.vscode/launch.json` with new configurations for testing novel and volume downloads with the new options.