speedtest

package
v0.0.0-...-a986093 Latest Latest
Warning

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

Go to latest
Published: Sep 8, 2022 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ByDistance

type ByDistance struct {
	Servers
}

ByDistance for sorting servers.

func (ByDistance) Less

func (b ByDistance) Less(i, j int) bool

Less compares the distance. For sorting servers.

type Option

type Option func(*Speedtest)

Option is a function that can be passed to New to modify the Client.

func WithDoer

func WithDoer(doer *http.Client) Option

WithDoer sets the http.Client used to make requests.

type PayloadType

type PayloadType int
const (
	JSONPayload PayloadType = iota
	XMLPayload
)

type Server

type Server struct {
	URL      string        `xml:"url,attr" json:"url"`
	Lat      string        `xml:"lat,attr" json:"lat"`
	Lon      string        `xml:"lon,attr" json:"lon"`
	Name     string        `xml:"name,attr" json:"name"`
	Country  string        `xml:"country,attr" json:"country"`
	Sponsor  string        `xml:"sponsor,attr" json:"sponsor"`
	ID       string        `xml:"id,attr" json:"id"`
	URL2     string        `xml:"url2,attr" json:"url_2"`
	Host     string        `xml:"host,attr" json:"host"`
	Distance float64       `json:"distance"`
	Latency  time.Duration `json:"latency"`
	DLSpeed  float64       `json:"dl_speed"`
	ULSpeed  float64       `json:"ul_speed"`
	// contains filtered or unexported fields
}

Server information

func (Server) CheckResultValid

func (s Server) CheckResultValid() bool

CheckResultValid checks that results are logical given UL and DL speeds

func (*Server) DownloadTest

func (s *Server) DownloadTest(savingMode bool) error

DownloadTest executes the test to measure download speed

func (*Server) DownloadTestContext

func (s *Server) DownloadTestContext(ctx context.Context, savingMode bool) error

DownloadTestContext executes the test to measure download speed, observing the given context.

func (*Server) PingTest

func (s *Server) PingTest() error

PingTest executes test to measure latency

func (*Server) PingTestContext

func (s *Server) PingTestContext(ctx context.Context) error

PingTestContext executes test to measure latency, observing the given context.

func (*Server) String

func (s *Server) String() string

String representation of Server

func (*Server) UploadTest

func (s *Server) UploadTest(savingMode bool) error

UploadTest executes the test to measure upload speed

func (*Server) UploadTestContext

func (s *Server) UploadTestContext(ctx context.Context, savingMode bool) error

UploadTestContext executes the test to measure upload speed, observing the given context.

type ServerList

type ServerList struct {
	Servers []*Server `xml:"servers>server"`
}

ServerList list of Server

func (ServerList) String

func (l ServerList) String() string

String representation of ServerList

type Servers

type Servers []*Server

Servers for sorting servers.

func FetchServerListContext

func FetchServerListContext(ctx context.Context, user *User, searchText string) (Servers, error)

FetchServerListContext retrieves a list of available servers, observing the given context.

func FetchServers

func FetchServers(user *User, searchText string) (Servers, error)

FetchServers retrieves a list of available servers

func (Servers) FindServer

func (l Servers) FindServer(serverID []int) (Servers, error)

FindServer finds server by serverID

func (Servers) Len

func (svrs Servers) Len() int

Len finds length of servers. For sorting servers.

func (Servers) String

func (l Servers) String() string

String representation of Servers

func (Servers) Swap

func (svrs Servers) Swap(i, j int)

Swap swaps i-th and j-th. For sorting servers.

type Speedtest

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

Speedtest is a speedtest client.

func New

func New(opts ...Option) *Speedtest

New creates a new speedtest client.

func (*Speedtest) FetchServerListContext

func (client *Speedtest) FetchServerListContext(ctx context.Context, user *User, searchText string) (Servers, error)

FetchServerListContext retrieves a list of available servers, observing the given context.

func (*Speedtest) FetchServers

func (client *Speedtest) FetchServers(user *User, searchText string) (Servers, error)

FetchServers retrieves a list of available servers

func (*Speedtest) FetchUserInfo

func (client *Speedtest) FetchUserInfo() (*User, error)

FetchUserInfo returns information about caller determined by speedtest.net

func (*Speedtest) FetchUserInfoContext

func (client *Speedtest) FetchUserInfoContext(ctx context.Context) (*User, error)

FetchUserInfoContext returns information about caller determined by speedtest.net, observing the given context.

type User

type User struct {
	IP  string `xml:"ip,attr"`
	Lat string `xml:"lat,attr"`
	Lon string `xml:"lon,attr"`
	Isp string `xml:"isp,attr"`
}

User represents information determined about the caller by speedtest.net

func FetchUserInfo

func FetchUserInfo() (*User, error)

FetchUserInfo returns information about caller determined by speedtest.net

func FetchUserInfoContext

func FetchUserInfoContext(ctx context.Context) (*User, error)

FetchUserInfoContext returns information about caller determined by speedtest.net, observing the given context.

func (*User) String

func (u *User) String() string

String representation of User

type Users

type Users struct {
	Users []User `xml:"client"`
}

Users for decode xml

Jump to

Keyboard shortcuts

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