dolo

package module
v0.2.26 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 4, 2026 License: AGPL-3.0 Imports: 10 Imported by: 14

README

dolo

Golang module for file download. Dolo skips downloading if the file exists and has the same content length. Dolo supports an optional callback that notifies on progress.

Exported methods

  • NewClient(httpClient *http.Client, notify func(uint64, uint64)) - creates a new dolo client using the provided http.Client (with cookie jar, etc.) and an optional callback to notify on progress. Optional callback takes two values - downloaded bytes and total bytes.

  • Download(url *url.URL, dstDir string, overwrite bool) - downloads a resource at the URL to the destination directory (original resource base path would be used for a filename). Overwrite would require download even if the destination file already exists and has the same content length.

Documentation

Index

Constants

View Source
const (
	DefaultUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.5 Safari/605.1.15"
)

Variables

View Source
var DefaultClient = NewClient(http.DefaultClient, Defaults())

Functions

func CopyWithProgress added in v0.2.0

func CopyWithProgress(dst io.Writer, src io.ReadCloser, tpw nod.TotalProgressWriter) error

func NewResourceContext added in v0.2.0

func NewResourceContext(u *url.URL, pathParts ...string) *resourceContext

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(httpClient *http.Client, opts *ClientOptions) *Client

func (*Client) Download

func (dc *Client) Download(u *url.URL, force bool, tpw nod.TotalProgressWriter, pathParts ...string) error

Download gets remote resource, attempting to resume existing partial downloads if the previous attempt got interrupted. Download supports nod progress reporting. Download will use provided path parts (see NewResourceContext for file name, directory rules), and if no parts were specified - will download to the nextAvailable working directory and use source URL path base for a filename.

func (*Client) SetAuthorizationBearer added in v0.2.24

func (dc *Client) SetAuthorizationBearer(token string)

func (*Client) SetCookies added in v0.2.25

func (dc *Client) SetCookies(values map[string]string)

type ClientOptions

type ClientOptions struct {
	UserAgent          string
	CheckContentLength bool
	ResumeDownloads    bool
}

func Defaults

func Defaults() *ClientOptions

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL