Documentation ¶
Index ¶
- Variables
- func PrintCityList()
- func Version() string
- type ByDistance
- type HTTPClient
- type Location
- type Option
- type PayloadType
- type RepeatReader
- type Server
- func (s Server) CheckResultValid() bool
- func (s *Server) DownloadTest(savingMode bool) error
- func (s *Server) DownloadTestContext(ctx context.Context, savingMode bool) error
- func (s *Server) PingTest() error
- func (s *Server) PingTestContext(ctx context.Context) error
- func (s *Server) String() string
- func (s *Server) UploadTest(savingMode bool) error
- func (s *Server) UploadTestContext(ctx context.Context, savingMode bool) error
- type ServerList
- type Servers
- type Speedtest
- func (client *Speedtest) FetchServerListContext(ctx context.Context, user *User) (Servers, error)
- func (client *Speedtest) FetchServers(user *User) (Servers, error)
- func (client *Speedtest) FetchUserInfo() (*User, error)
- func (client *Speedtest) FetchUserInfoContext(ctx context.Context) (*User, error)
- type User
- type Users
Constants ¶
This section is empty.
Variables ¶
var Locations = map[string]Location{
"brasilia": {"br", -15.793876, -47.8835327},
"hongkong": {"hk", 22.3106806, 114.1700546},
"tokyo": {"jp", 35.680938, 139.7674114},
"london": {"uk", 51.5072493, -0.1288861},
"moscow": {"ru", 55.7497248, 37.615989},
"beijing": {"cn", 39.8721243, 116.4077473},
"paris": {"fr", 48.8626026, 2.3477229},
"sanfrancisco": {"us", 37.7540028, -122.4429967},
"newyork": {"us", 40.7200876, -74.0220945},
"yishun": {"sg", 1.4230218, 103.8404728},
"delhi": {"in", 28.6251287, 77.1960896},
"monterrey": {"mx", 25.6881435, -100.3073485},
"berlin": {"de", 52.5168128, 13.4009469},
"maputo": {"mz", -25.9579267, 32.5760444},
"honolulu": {"us", 20.8247065, -156.918706},
"seoul": {"kr", 37.6086268, 126.7179721},
"osaka": {"jp", 34.6952743, 135.5006967},
"shanghai": {"cn", 31.2292105, 121.4661666},
"urumqi": {"cn", 43.8256624, 87.6058564},
"ottawa": {"ca", 45.4161836, -75.7035467},
"capetown": {"za", -33.9391993, 18.4316716},
"sydney": {"au", -33.8966622, 151.1731861},
"perth": {"au", -31.9551812, 115.8591904},
"warsaw": {"pl", 52.2396659, 21.0129345},
"kampala": {"ug", 0.3070027, 32.5675581},
"bangkok": {"th", 13.7248936, 100.493026},
}
Locations TODO more location need to added
Functions ¶
func PrintCityList ¶
func PrintCityList()
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 HTTPClient) Option
WithDoer sets the http.Client used to make requests.
type RepeatReader ¶
type RepeatReader struct { ContentLength int64 // contains filtered or unexported fields }
func NewRepeatReader ¶
func NewRepeatReader(size int) *RepeatReader
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 CustomServer ¶
CustomServer given a URL string, return a new Server object, with as much filled in as we can
func (Server) CheckResultValid ¶
CheckResultValid checks that results are logical given UL and DL speeds
func (*Server) DownloadTest ¶
DownloadTest executes the test to measure download speed
func (*Server) DownloadTestContext ¶
DownloadTestContext executes the test to measure download speed, observing the given context.
func (*Server) PingTestContext ¶
PingTestContext executes test to measure latency, observing the given context.
func (*Server) UploadTest ¶
UploadTest executes the test to measure upload speed
type ServerList ¶
type ServerList struct {
Servers []*Server `xml:"servers>server"`
}
ServerList list of Server
type Servers ¶
type Servers []*Server
Servers for sorting servers.
func FetchServerListContext ¶
FetchServerListContext retrieves a list of available servers, observing the given context.
func FetchServers ¶
FetchServers retrieves a list of available servers
func (Servers) FindServer ¶
FindServer finds server by serverID
type Speedtest ¶
type Speedtest struct {
// contains filtered or unexported fields
}
Speedtest is a speedtest client.
func (*Speedtest) FetchServerListContext ¶
FetchServerListContext retrieves a list of available servers, observing the given context.
func (*Speedtest) FetchServers ¶
FetchServers retrieves a list of available servers
func (*Speedtest) FetchUserInfo ¶
FetchUserInfo returns information about caller determined by speedtest.net
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"` VLoc string `xml:"v_loc,attr"` // virtual location name VLat string `xml:"v_lat,attr"` // virtual lat VLon string `xml:"v_lon,attr"` // virtual lon }
User represents information determined about the caller by speedtest.net
func FetchUserInfo ¶
FetchUserInfo returns information about caller determined by speedtest.net
func FetchUserInfoContext ¶
FetchUserInfoContext returns information about caller determined by speedtest.net, observing the given context.
func (*User) ParseAndSetLocation ¶
ParseAndSetLocation parse latitude and longitude string
func (*User) SetLocation ¶
SetLocation set the latitude and longitude of the current user
func (*User) SetLocationByCity ¶
SetLocationByCity set current location using predefined location label.