webseed

package
v1.55.0 Latest Latest
Warning

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

Go to latest
Published: Feb 28, 2024 License: MPL-2.0 Imports: 13 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrTooFast = errors.New("making requests too fast")

Functions

func EscapePath added in v1.42.0

func EscapePath(pathComps []string) string

Escapes path name components suitable for appending to a webseed URL. This works for converting S3 object keys to URLs too.

Contrary to the name, this actually does a QueryEscape, rather than a PathEscape. This works better with most S3 providers.

Types

type Client

type Client struct {
	HttpClient *http.Client
	Url        string

	// The pieces we can request with the Url. We're more likely to ban/block at the file-level
	// given that's how requests are mapped to webseeds, but the torrent.Client works at the piece
	// level. We can map our file-level adjustments to the pieces here. This probably need to be
	// private in the future, if Client ever starts removing pieces.
	Pieces              roaring.Bitmap
	ResponseBodyWrapper ResponseBodyWrapper
	PathEscaper         PathEscaper
	// contains filtered or unexported fields
}

func (*Client) NewRequest

func (ws *Client) NewRequest(r RequestSpec) Request

func (*Client) SetInfo added in v1.37.0

func (me *Client) SetInfo(info *metainfo.Info)

type ErrBadResponse added in v1.25.1

type ErrBadResponse struct {
	Msg      string
	Response *http.Response
}

func (ErrBadResponse) Error added in v1.25.1

func (me ErrBadResponse) Error() string

type PathEscaper added in v1.43.0

type PathEscaper func(pathComps []string) string

type Request

type Request struct {
	Result chan RequestResult
	// contains filtered or unexported fields
}

func (Request) Cancel

func (r Request) Cancel()

type RequestResult

type RequestResult struct {
	Bytes []byte
	Err   error
}

type RequestSpec

type RequestSpec = segments.Extent

type ResponseBodyWrapper added in v1.40.0

type ResponseBodyWrapper func(io.Reader) io.Reader

Jump to

Keyboard shortcuts

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