mirror of
https://github.com/bestnite/bilinovel-downloader.git
synced 2025-10-26 17:14:24 +00:00
feat: Add concurrency and headless options for downloads
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 is contained in:
@@ -1,16 +0,0 @@
|
||||
package model
|
||||
|
||||
type ExtraFile struct {
|
||||
Data []byte
|
||||
Path string
|
||||
ManifestItem ManifestItem
|
||||
}
|
||||
|
||||
type Downloader interface {
|
||||
GetNovel(novelId int, skipChapter bool) (*Novel, error)
|
||||
GetVolume(novelId int, volumeId int, skipChapter bool) (*Volume, error)
|
||||
GetChapter(novelId int, volumeId int, chapterId int) (*Chapter, error)
|
||||
GetStyleCSS() string
|
||||
GetExtraFiles() []ExtraFile
|
||||
Close() error
|
||||
}
|
||||
@@ -1,6 +1,14 @@
|
||||
package model
|
||||
|
||||
import "encoding/xml"
|
||||
import (
|
||||
"encoding/xml"
|
||||
)
|
||||
|
||||
type ExtraFile struct {
|
||||
Data []byte
|
||||
Path string
|
||||
ManifestItem ManifestItem
|
||||
}
|
||||
|
||||
type DublinCoreMetadata struct {
|
||||
XMLName xml.Name `xml:"metadata"`
|
||||
|
||||
Reference in New Issue
Block a user