Fix server filtering using merged server data

This commit is contained in:
Quentin McGaw
2020-08-27 23:06:28 +00:00
parent 93aaf1ab02
commit 99ba56f574
8 changed files with 16 additions and 20 deletions

View File

@@ -20,8 +20,7 @@ func newCyberghost(servers []models.CyberghostServer) *cyberghost {
} }
func (c *cyberghost) filterServers(region, group string) (servers []models.CyberghostServer) { func (c *cyberghost) filterServers(region, group string) (servers []models.CyberghostServer) {
allServers := constants.CyberghostServers() for i, server := range c.servers {
for i, server := range allServers {
if len(region) == 0 { if len(region) == 0 {
server.Region = "" server.Region = ""
} }
@@ -29,7 +28,7 @@ func (c *cyberghost) filterServers(region, group string) (servers []models.Cyber
server.Group = "" server.Group = ""
} }
if strings.EqualFold(server.Region, region) && strings.EqualFold(server.Group, group) { if strings.EqualFold(server.Region, region) && strings.EqualFold(server.Group, group) {
servers = append(servers, allServers[i]) servers = append(servers, c.servers[i])
} }
} }
return servers return servers

View File

@@ -20,8 +20,7 @@ func newMullvad(servers []models.MullvadServer) *mullvad {
} }
func (m *mullvad) filterServers(country, city, isp string) (servers []models.MullvadServer) { func (m *mullvad) filterServers(country, city, isp string) (servers []models.MullvadServer) {
allServers := constants.MullvadServers() for i, server := range m.servers {
for i, server := range allServers {
if len(country) == 0 { if len(country) == 0 {
server.Country = "" server.Country = ""
} }
@@ -34,7 +33,7 @@ func (m *mullvad) filterServers(country, city, isp string) (servers []models.Mul
if strings.EqualFold(server.Country, country) && if strings.EqualFold(server.Country, country) &&
strings.EqualFold(server.City, city) && strings.EqualFold(server.City, city) &&
strings.EqualFold(server.ISP, isp) { strings.EqualFold(server.ISP, isp) {
servers = append(servers, allServers[i]) servers = append(servers, m.servers[i])
} }
} }
return servers return servers

View File

@@ -20,8 +20,7 @@ func newNordvpn(servers []models.NordvpnServer) *nordvpn {
} }
func (n *nordvpn) filterServers(region string, protocol models.NetworkProtocol, number uint16) (servers []models.NordvpnServer) { func (n *nordvpn) filterServers(region string, protocol models.NetworkProtocol, number uint16) (servers []models.NordvpnServer) {
allServers := constants.NordvpnServers() for i, server := range n.servers {
for i, server := range allServers {
if len(region) == 0 { if len(region) == 0 {
server.Region = "" server.Region = ""
} }
@@ -35,7 +34,7 @@ func (n *nordvpn) filterServers(region string, protocol models.NetworkProtocol,
continue continue
} }
if strings.EqualFold(server.Region, region) && server.Number == number { if strings.EqualFold(server.Region, region) && server.Number == number {
servers = append(servers, allServers[i]) servers = append(servers, n.servers[i])
} }
} }
return servers return servers

View File

@@ -27,9 +27,9 @@ func newPrivateInternetAccess(servers []models.PIAServer) *pia {
func (p *pia) filterServers(region string) (servers []models.PIAServer) { func (p *pia) filterServers(region string) (servers []models.PIAServer) {
if len(region) == 0 { if len(region) == 0 {
return constants.PIAServers() return p.servers
} }
for _, server := range constants.PIAServers() { for _, server := range p.servers {
if strings.EqualFold(server.Region, region) { if strings.EqualFold(server.Region, region) {
return []models.PIAServer{server} return []models.PIAServer{server}
} }

View File

@@ -20,8 +20,7 @@ func newPurevpn(servers []models.PurevpnServer) *purevpn {
} }
func (p *purevpn) filterServers(region, country, city string) (servers []models.PurevpnServer) { func (p *purevpn) filterServers(region, country, city string) (servers []models.PurevpnServer) {
allServers := constants.PurevpnServers() for i, server := range p.servers {
for i, server := range allServers {
if len(region) == 0 { if len(region) == 0 {
server.Region = "" server.Region = ""
} }
@@ -34,7 +33,7 @@ func (p *purevpn) filterServers(region, country, city string) (servers []models.
if strings.EqualFold(server.Region, region) && if strings.EqualFold(server.Region, region) &&
strings.EqualFold(server.Country, country) && strings.EqualFold(server.Country, country) &&
strings.EqualFold(server.City, city) { strings.EqualFold(server.City, city) {
servers = append(servers, allServers[i]) servers = append(servers, p.servers[i])
} }
} }
return servers return servers

View File

@@ -21,9 +21,9 @@ func newSurfshark(servers []models.SurfsharkServer) *surfshark {
func (s *surfshark) filterServers(region string) (servers []models.SurfsharkServer) { func (s *surfshark) filterServers(region string) (servers []models.SurfsharkServer) {
if len(region) == 0 { if len(region) == 0 {
return constants.SurfsharkServers() return s.servers
} }
for _, server := range constants.SurfsharkServers() { for _, server := range s.servers {
if strings.EqualFold(server.Region, region) { if strings.EqualFold(server.Region, region) {
return []models.SurfsharkServer{server} return []models.SurfsharkServer{server}
} }

View File

@@ -21,9 +21,9 @@ func newVyprvpn(servers []models.VyprvpnServer) *vyprvpn {
func (v *vyprvpn) filterServers(region string) (servers []models.VyprvpnServer) { func (v *vyprvpn) filterServers(region string) (servers []models.VyprvpnServer) {
if len(region) == 0 { if len(region) == 0 {
return constants.VyprvpnServers() return v.servers
} }
for _, server := range constants.VyprvpnServers() { for _, server := range v.servers {
if strings.EqualFold(server.Region, region) { if strings.EqualFold(server.Region, region) {
return []models.VyprvpnServer{server} return []models.VyprvpnServer{server}
} }

View File

@@ -21,9 +21,9 @@ func newWindscribe(servers []models.WindscribeServer) *windscribe {
func (w *windscribe) filterServers(region string) (servers []models.WindscribeServer) { func (w *windscribe) filterServers(region string) (servers []models.WindscribeServer) {
if len(region) == 0 { if len(region) == 0 {
return constants.WindscribeServers() return w.servers
} }
for _, server := range constants.WindscribeServers() { for _, server := range w.servers {
if strings.EqualFold(server.Region, region) { if strings.EqualFold(server.Region, region) {
return []models.WindscribeServer{server} return []models.WindscribeServer{server}
} }