net

package
v0.0.86 Latest Latest
Warning

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

Go to latest
Published: May 10, 2023 License: MIT Imports: 18 Imported by: 4

Documentation

Overview

Package net provides the core download functions

Package net provides net related functions

Index

Constants

View Source
const (
	// ContentType is for the http header of content type
	ContentType = "Content-Type"
	// ApplicationForm is for the form submit
	ApplicationForm = "application/x-www-form-urlencoded"
)

Variables

This section is empty.

Functions

func DetectSizeWithRoundTripper added in v0.0.68

func DetectSizeWithRoundTripper(targetURL, output string, showProgress, noProxy, insecureSkipVerify bool,
	roundTripper http.RoundTripper, timeout time.Duration) (total int64, rangeSupport bool, err error)

DetectSizeWithRoundTripper returns the size of target resource

func DownloadFileWithMultipleThreadKeepParts

func DownloadFileWithMultipleThreadKeepParts(targetURL, targetFilePath string, thread int, keepParts, showProgress bool) (err error)

DownloadFileWithMultipleThreadKeepParts downloads the files with multiple threads

func GetCurrentLine added in v0.0.83

func GetCurrentLine() int

GetCurrentLine returns the current line

func SetProxy

func SetProxy(proxy, proxyAuth string, tr *http.Transport) (err error)

SetProxy set the proxy for a http

Types

type ContinueDownloader added in v0.0.32

type ContinueDownloader struct {
	Timeout time.Duration
	Context context.Context
	// contains filtered or unexported fields
}

ContinueDownloader is a downloader which support continuously download

func (*ContinueDownloader) DownloadWithContinue added in v0.0.32

func (c *ContinueDownloader) DownloadWithContinue(targetURL, output string, index, continueAt, end int64, showProgress bool) (err error)

DownloadWithContinue downloads the files continuously

func (*ContinueDownloader) GetSuggestedFilename added in v0.0.81

func (c *ContinueDownloader) GetSuggestedFilename() string

GetSuggestedFilename returns the suggested filename

func (*ContinueDownloader) WithContext added in v0.0.83

WithContext sets the context

func (*ContinueDownloader) WithInsecureSkipVerify added in v0.0.81

func (c *ContinueDownloader) WithInsecureSkipVerify(insecureSkipVerify bool) *ContinueDownloader

WithInsecureSkipVerify set if skip the insecure verify

func (*ContinueDownloader) WithRoundTripper added in v0.0.69

func (c *ContinueDownloader) WithRoundTripper(roundTripper http.RoundTripper) *ContinueDownloader

WithRoundTripper set WithRoundTripper

func (*ContinueDownloader) WithTimeout added in v0.0.83

func (c *ContinueDownloader) WithTimeout(timeout time.Duration) *ContinueDownloader

WithTimeout sets the timeout

func (*ContinueDownloader) WithoutProxy added in v0.0.69

func (c *ContinueDownloader) WithoutProxy(noProxy bool) *ContinueDownloader

WithoutProxy indicate no HTTP proxy use

type DownloadError

type DownloadError struct {
	StatusCode int
	Message    string
}

DownloadError represents the error of HTTP download

func (*DownloadError) Error

func (e *DownloadError) Error() string

Error print the error message

type FakeReader added in v0.0.77

type FakeReader struct {
	ExpectErr error
}

FakeReader is a fake reader for the test purpose

func (*FakeReader) Read added in v0.0.77

func (e *FakeReader) Read(p []byte) (n int, err error)

Read is a fake method

type HTTPDownloader

type HTTPDownloader struct {
	TargetFilePath     string
	URL                string
	ShowProgress       bool
	InsecureSkipVerify bool
	Context            context.Context

	UserName string
	Password string

	NoProxy   bool
	Proxy     string
	ProxyAuth string

	Header map[string]string

	// PreStart returns false will don't continue
	PreStart func(*http.Response) bool

	Thread  int
	Title   string
	Timeout time.Duration

	Debug        bool
	RoundTripper http.RoundTripper
	// contains filtered or unexported fields
}

HTTPDownloader is the downloader for http request

func (*HTTPDownloader) DownloadFile

func (h *HTTPDownloader) DownloadFile() error

DownloadFile download a file with the progress

func (*HTTPDownloader) GetSuggestedFilename added in v0.0.81

func (h *HTTPDownloader) GetSuggestedFilename() string

GetSuggestedFilename returns the suggested filename which comes from the HTTP response header. Returns empty string if the filename is same with the given name.

type MultiThreadDownloader added in v0.0.69

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

MultiThreadDownloader is a download with multi-thread

func (*MultiThreadDownloader) Download added in v0.0.69

func (d *MultiThreadDownloader) Download(targetURL, targetFilePath string, thread int) (err error)

Download starts to download the target URL

func (*MultiThreadDownloader) GetSuggestedFilename added in v0.0.81

func (d *MultiThreadDownloader) GetSuggestedFilename() string

GetSuggestedFilename returns the suggested filename

func (*MultiThreadDownloader) WithInsecureSkipVerify added in v0.0.81

func (d *MultiThreadDownloader) WithInsecureSkipVerify(insecureSkipVerify bool) *MultiThreadDownloader

WithInsecureSkipVerify set if skip the insecure verify

func (*MultiThreadDownloader) WithKeepParts added in v0.0.69

func (d *MultiThreadDownloader) WithKeepParts(keepParts bool) *MultiThreadDownloader

WithKeepParts indicates if keeping the part files

func (*MultiThreadDownloader) WithRoundTripper added in v0.0.69

func (d *MultiThreadDownloader) WithRoundTripper(roundTripper http.RoundTripper) *MultiThreadDownloader

WithRoundTripper sets RoundTripper

func (*MultiThreadDownloader) WithShowProgress added in v0.0.69

func (d *MultiThreadDownloader) WithShowProgress(showProgress bool) *MultiThreadDownloader

WithShowProgress indicate if show the download progress

func (*MultiThreadDownloader) WithTimeout added in v0.0.83

func (d *MultiThreadDownloader) WithTimeout(timeout time.Duration) *MultiThreadDownloader

WithTimeout sets the timeout

func (*MultiThreadDownloader) WithoutProxy added in v0.0.69

func (d *MultiThreadDownloader) WithoutProxy(noProxy bool) *MultiThreadDownloader

WithoutProxy indicates not use HTTP proxy

type ProgressIndicator

type ProgressIndicator struct {
	Writer io.Writer
	Reader io.Reader
	Title  string

	// bytes.Buffer
	Total float64
	// contains filtered or unexported fields
}

ProgressIndicator hold the progress of io operation

func (ProgressIndicator) Close added in v0.0.32

func (i ProgressIndicator) Close()

Close shutdowns the ui process

func (*ProgressIndicator) Init

func (i *ProgressIndicator) Init()

Init set the default value for progress indicator

func (*ProgressIndicator) Read

func (i *ProgressIndicator) Read(p []byte) (n int, err error)

Read reads the progress

func (*ProgressIndicator) Write

func (i *ProgressIndicator) Write(p []byte) (n int, err error)

Write writes the progress See also https://en.wikipedia.org/wiki/ANSI_escape_code#Sequence_elements

type RetryClient

type RetryClient struct {
	http.Client
	MaxAttempts int
	// contains filtered or unexported fields
}

RetryClient is the wrap of http.Client

func NewRetryClient added in v0.0.83

func NewRetryClient(client http.Client) *RetryClient

NewRetryClient creates the instance of RetryClient

func (*RetryClient) Do

func (c *RetryClient) Do(req *http.Request) (rsp *http.Response, err error)

Do is the wrap of http.Client.Do

type SuggestedFilenameAware added in v0.0.81

type SuggestedFilenameAware interface {
	GetSuggestedFilename() string
}

SuggestedFilenameAware is the interface for getting suggested filename

Jump to

Keyboard shortcuts

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