Cleaned up CLI output.
This commit is contained in:
parent
e4027dfb6a
commit
f69ff038a3
@ -13,11 +13,11 @@ import (
|
||||
"time"
|
||||
|
||||
ct "github.com/daviddengcn/go-colortext"
|
||||
"github.com/manifoldco/promptui"
|
||||
ui "github.com/manifoldco/promptui"
|
||||
"github.com/nuttapp/pinghist/ping"
|
||||
)
|
||||
|
||||
const BANNER = "ICAgKiAgICAgICAgICAgICAgICAgICgKICggIGAgICAgICAgICAgKCAgICggIClcICkgICAgICAgICAgICAgICkKIClcKSkoICAgICAoICAgKVwgIClcKCgpLyggICAgKSAgICAgICggLygKKChfKSgpXCAgICkpXCAoKF8pKChfKS8oXykpKCAvKCAgKCAgIClcKCkpCihfKCkoKF8pIC8oKF8pIF8gICBfIChfKSlffCkoXykpIClcIChfKSkvCnwgIFwvICB8KF8pKSggfCB8IHwgfHwgfF8gKChfKV8gKChfKXwgfF8KfCB8XC98IHx8IHx8IHx8IHwgfCB8fCBfX3wvIF9gIHwoXy08fCAgX3wKfF98ICB8X3wgXF8sX3x8X3wgfF98fF98ICBcX18sX3wvX18vIFxfX3wKICAgLSBDb2RlZCBieSBNb29ueSAtIFZlcnNpb246IDAuMS4wIC0K"
|
||||
const BANNER = "ICAgKiAgICAgICAgICAgICAgICAgICgKICggIGAgICAgICAgICAgKCAgICggIClcICkgICAgICAgICAgICAgICkKIClcKSkoICAgICAoICAgKVwgIClcKCgpLyggICAgKSAgICAgICggLygKKChfKSgpXCAgICkpXCAoKF8pKChfKS8oXykpKCAvKCAgKCAgIClcKCkpCihfKCkoKF8pIC8oKF8pIF8gICBfIChfKSlffCkoXykpIClcIChfKSkvCnwgIFwvICB8KF8pKSggfCB8IHwgfHwgfF8gKChfKV8gKChfKXwgfF8KfCB8XC98IHx8IHx8IHx8IHwgfCB8fCBfX3wvIF9gIHwoXy08fCAgX3wKfF98ICB8X3wgXF8sX3x8X3wgfF98fF98ICBcX18sX3wvX18vIFxfX3wK"
|
||||
const URL = "https://api.mullvad.net/www/relays/all"
|
||||
|
||||
type Server struct {
|
||||
@ -51,8 +51,8 @@ func (a ByLast) Less(i, j int) bool { return a[i].Last < a[j].Last }
|
||||
// Ping method
|
||||
func (s *Server) Ping() (float64, error) {
|
||||
// for i := 0; i < 3; i++ {
|
||||
ct.ChangeColor(ct.Blue, false, ct.None, false)
|
||||
fmt.Println("[*] Testing server latency", s.URL)
|
||||
ct.ChangeColor(ct.Cyan, false, ct.None, false)
|
||||
fmt.Println("[*] Testing server:", s.URL)
|
||||
r, err := ping.Ping(s.URL)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
@ -76,12 +76,12 @@ func main() {
|
||||
ct.ChangeColor(ct.Red, false, ct.None, false)
|
||||
fmt.Println(err)
|
||||
} else {
|
||||
ct.ChangeColor(ct.Magenta, false, ct.None, false)
|
||||
ct.ChangeColor(ct.Red, false, ct.None, false)
|
||||
fmt.Printf("%s\n", banner)
|
||||
}
|
||||
|
||||
prompt := promptui.Select{
|
||||
Label: "Select Mullvad server type",
|
||||
prompt := ui.Select{
|
||||
Label: "Select Mullvad VPN type",
|
||||
Items: []string{"WireGuard", "OpenVPN", "Cancel"},
|
||||
}
|
||||
|
||||
@ -89,7 +89,7 @@ func main() {
|
||||
|
||||
if err != nil {
|
||||
ct.ChangeColor(ct.Red, false, ct.None, false)
|
||||
fmt.Println("[!] User prompt failed", err)
|
||||
fmt.Println("\n[!] User prompt failed", err)
|
||||
return
|
||||
|
||||
} else if promptResult == "Cancel" {
|
||||
@ -98,11 +98,11 @@ func main() {
|
||||
os.Exit(0)
|
||||
|
||||
} else {
|
||||
ct.ChangeColor(ct.Blue, true, ct.None, false)
|
||||
fmt.Printf("[*] You selected %q servers for testing\n", promptResult)
|
||||
ct.ChangeColor(ct.Cyan, true, ct.None, false)
|
||||
fmt.Printf("[*] You selected %q servers for testing\n\n", promptResult)
|
||||
}
|
||||
|
||||
ct.ChangeColor(ct.Blue, false, ct.None, false)
|
||||
ct.ChangeColor(ct.Cyan, false, ct.None, false)
|
||||
fmt.Println("[*] Retrieving list of Mullvad servers...")
|
||||
|
||||
response, err := http.Get(URL)
|
||||
@ -111,11 +111,13 @@ func main() {
|
||||
fmt.Println("[!] Request Error\n", err.Error())
|
||||
}
|
||||
defer response.Body.Close()
|
||||
|
||||
body, err := ioutil.ReadAll(response.Body)
|
||||
|
||||
jsonErr := json.Unmarshal(body, &servers)
|
||||
ct.ChangeColor(ct.Blue, false, ct.None, false)
|
||||
fmt.Printf("[*] There are %d total servers\n\n", len(servers))
|
||||
|
||||
ct.ChangeColor(ct.Green, false, ct.None, false)
|
||||
fmt.Printf("[*] There are %d total servers\n", len(servers))
|
||||
if jsonErr != nil {
|
||||
ct.ChangeColor(ct.Red, false, ct.None, false)
|
||||
fmt.Println("[!] Json Error", jsonErr)
|
||||
@ -123,12 +125,11 @@ func main() {
|
||||
for i := range servers {
|
||||
servers[i].URL = servers[i].Hostname + ".mullvad.net"
|
||||
if servers[i].Type == strings.ToLower(promptResult) && servers[i].Active {
|
||||
// if servers[i].Type == "wireguard" && servers[i].Active {
|
||||
active = append(active, servers[i])
|
||||
}
|
||||
}
|
||||
}
|
||||
ct.ChangeColor(ct.Blue, false, ct.None, false)
|
||||
ct.ChangeColor(ct.Green, false, ct.None, false)
|
||||
fmt.Printf("[*] There are %d active servers\n\n", len(active))
|
||||
|
||||
// Test the valid servers.
|
||||
@ -156,10 +157,11 @@ func main() {
|
||||
|
||||
wg.Wait()
|
||||
|
||||
ct.ChangeColor(ct.Red, false, ct.None, false)
|
||||
fmt.Printf("\n\n%s\n", banner)
|
||||
ct.ChangeColor(ct.Magenta, false, ct.None, false)
|
||||
// fmt.Println("------------------------------------------")
|
||||
// fmt.Println("------------------------------------------")
|
||||
// fmt.Println("==========================================")
|
||||
fmt.Println("==========================================")
|
||||
fmt.Println("============ TOP 10 RESULTS ==============")
|
||||
fmt.Println("==========================================")
|
||||
ct.ResetColor()
|
||||
|
||||
@ -171,9 +173,9 @@ func main() {
|
||||
}
|
||||
|
||||
ct.ChangeColor(ct.Green, false, ct.None, false)
|
||||
fmt.Println("[*]", server.URL, "\t", server.Last, "ms")
|
||||
fmt.Println("-", server.URL, "\t", server.Last, "ms")
|
||||
ct.ChangeColor(ct.Magenta, false, ct.None, false)
|
||||
fmt.Println("------------------------------------------")
|
||||
fmt.Println("==========================================")
|
||||
ct.ResetColor()
|
||||
|
||||
if printed >= 9 {
|
||||
|
Loading…
Reference in New Issue
Block a user