diff --git a/cmd/main.go b/cmd/main.go index b7a19e4..e7b41b3 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -15,11 +15,12 @@ func main() { http.Get("https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Foneclickvirt%2Fspeedtest&count_bg=%2323E01C&title_bg=%23555555&icon=sonarcloud.svg&icon_color=%23E7E7E7&title=hits&edge_flat=false") }() fmt.Println("项目地址:", "https://github.com/oneclickvirt/speedtest") - var showVersion, nearByServer bool + var showVersion, nearByServer, showHead bool var language, operator, platform string var num int flag.BoolVar(&showVersion, "v", false, "Show version information") flag.BoolVar(&nearByServer, "nearby", false, "Test only nearby servers") + flag.BoolVar(&showHead, "s", true, "Show head") flag.StringVar(&language, "l", "zh", "Language parameter (options: en, zh)") flag.StringVar(&platform, "pf", "net", "Platform parameter (options: net, cn)") flag.StringVar(&operator, "opt", "", "Operator parameter (options: cmcc, cu, ct, sg, tw, jp, hk, global)") @@ -29,8 +30,11 @@ func main() { fmt.Println(model.SpeedTestVersion) return } + if showHead { + sp.ShowHead(language) + } if nearByServer { - sp.NearbySpeedTest(language) + sp.NearbySpeedTest() return } var url, parseType string diff --git a/sp/sp.go b/sp/sp.go index d6d01b8..9b1892b 100644 --- a/sp/sp.go +++ b/sp/sp.go @@ -86,7 +86,7 @@ func parseDataFromID(data string) speedtest.Servers { return targets } -func NearbySpeedTest(language string) { +func ShowHead(language string) { if language == "zh" { fmt.Printf("%-12s\t %-11s\t %-11s\t %-11s\t %-12s\n", "位置", "上传速度", "下载速度", "延迟", "丢包率") @@ -94,6 +94,9 @@ func NearbySpeedTest(language string) { fmt.Printf("%-12s\t %-11s\t %-11s\t %-11s\t %-12s\n", "Location", "Upload Speed", "Download Speed", "Latency", "PacketLoss") } +} + +func NearbySpeedTest() { var speedtestClient = speedtest.New() serverList, _ := speedtestClient.FetchServers() targets, _ := serverList.FindServer([]int{}) @@ -156,6 +159,9 @@ func CustomSpeedTest(url, byWhat string, num int) { var PacketLoss string if num == -1 && num >= len(pingList) { num = len(pingList) + } else if len(pingList) == 0 { + fmt.Println("No match servers") + return } for i := 0; i < num && i < len(pingList); i++ { server := serverMap[pingList[i]]