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.
This commit replaces the `chromedp` library with `playwright-go` for browser automation within the Bilinovel downloader.
Changes include:
* Updated `Bilinovel` struct to manage Playwright browser, context, and page instances.
* Rewrote `initBrowser` and `Close` methods to use Playwright's API for browser lifecycle management.
* Refactored `processContentWithChromedp` to `processContentWithPlaywright`, adapting the logic to use Playwright's page evaluation capabilities.
* Removed unused `context` and `time` imports.
* Added HTML cleanup in `getChapterByPage` to remove `class` attributes from images and `data-k` attributes from all elements, improving content consistency.