diff --git a/internal/provider/common/mocks.go b/internal/provider/common/mocks.go index 52722a43..d7ddaa1a 100644 --- a/internal/provider/common/mocks.go +++ b/internal/provider/common/mocks.go @@ -92,20 +92,6 @@ func (mr *MockStorageMockRecorder) FilterServers(arg0, arg1 interface{}) *gomock return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FilterServers", reflect.TypeOf((*MockStorage)(nil).FilterServers), arg0, arg1) } -// HardcodedServers mocks base method. -func (m *MockStorage) HardcodedServers() models.AllServers { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "HardcodedServers") - ret0, _ := ret[0].(models.AllServers) - return ret0 -} - -// HardcodedServers indicates an expected call of HardcodedServers. -func (mr *MockStorageMockRecorder) HardcodedServers() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "HardcodedServers", reflect.TypeOf((*MockStorage)(nil).HardcodedServers)) -} - // MockUnzipper is a mock of Unzipper interface. type MockUnzipper struct { ctrl *gomock.Controller diff --git a/internal/provider/common/storage.go b/internal/provider/common/storage.go index 83dd8977..eb720a12 100644 --- a/internal/provider/common/storage.go +++ b/internal/provider/common/storage.go @@ -8,5 +8,4 @@ import ( type Storage interface { FilterServers(provider string, selection settings.ServerSelection) ( servers []models.Server, err error) - HardcodedServers() models.AllServers } diff --git a/internal/provider/providers.go b/internal/provider/providers.go index 7232a415..a86b4feb 100644 --- a/internal/provider/providers.go +++ b/internal/provider/providers.go @@ -43,7 +43,6 @@ type Providers struct { type Storage interface { FilterServers(provider string, selection settings.ServerSelection) ( servers []models.Server, err error) - HardcodedServers() models.AllServers } type Extractor interface { diff --git a/internal/provider/slickvpn/provider.go b/internal/provider/slickvpn/provider.go index 39ae2309..a41d60a8 100644 --- a/internal/provider/slickvpn/provider.go +++ b/internal/provider/slickvpn/provider.go @@ -22,7 +22,7 @@ func New(storage common.Storage, randSource rand.Source, return &Provider{ storage: storage, randSource: randSource, - Fetcher: updater.New(client, updaterWarner, parallelResolver, storage), + Fetcher: updater.New(client, updaterWarner, parallelResolver), } } diff --git a/internal/provider/slickvpn/updater/servers.go b/internal/provider/slickvpn/updater/servers.go index 38d1d6fd..105ee771 100644 --- a/internal/provider/slickvpn/updater/servers.go +++ b/internal/provider/slickvpn/updater/servers.go @@ -5,7 +5,7 @@ import ( "fmt" "sort" - "github.com/qdm12/gluetun/internal/constants/providers" + "github.com/qdm12/gluetun/internal/constants/vpn" "github.com/qdm12/gluetun/internal/models" "github.com/qdm12/gluetun/internal/provider/common" ) @@ -14,20 +14,24 @@ func (u *Updater) FetchServers(ctx context.Context, minServers int) ( servers []models.Server, err error, ) { // Since SlickVPN website listing VPN servers https://www.slickvpn.com/locations/ - // went to become a pile of trash, we now use the servers data from our servers.json - // to check which servers can be resolved. The previous code was dynamically parsing - // their website table of servers and they now list only 11 servers on their website. - hardcodedServersData := u.storage.HardcodedServers() - slickVPNData, ok := hardcodedServersData.ProviderToServers[providers.SlickVPN] - if !ok { - return nil, fmt.Errorf("no hardcoded servers for provider %s", providers.SlickVPN) + // went to become a pile of trash, we now hardcode the servers data below. + servers = []models.Server{ + {Hostname: "gw2.sin2.slickvpn.com", Region: "Asia", Country: "Singapore", City: "Singapore"}, + {Hostname: "gw1.bos1.slickvpn.com", Region: "North America", Country: "United States", City: "Boston"}, + {Hostname: "gw1.cmh1.slickvpn.com", Region: "North America", Country: "United States", City: "Columbus"}, + {Hostname: "gw1.lax2.slickvpn.com", Region: "North America", Country: "United States", City: "Los Angeles"}, + {Hostname: "gw1.lga2.slickvpn.com", Region: "North America", Country: "United States", City: "New York"}, + {Hostname: "gw1.man2.slickvpn.com", Region: "Europe", Country: "United Kingdom", City: "Manchester"}, + {Hostname: "gw2.ams3.slickvpn.com", Region: "Europe", Country: "Netherlands", City: "Amsterdam"}, + {Hostname: "gw2.hou1.slickvpn.com", Region: "North America", Country: "United States", City: "Houston"}, + {Hostname: "gw1.mci2.slickvpn.com", Region: "North America", Country: "United States", City: "Kansas City"}, + {Hostname: "gw2.slc1.slickvpn.com", Region: "North America", Country: "United States", City: "Salt Lake City"}, + {Hostname: "gw1.stl1.slickvpn.com", Region: "North America", Country: "United States", City: "St Louis"}, } - hardcodedServers := make([]models.Server, len(slickVPNData.Servers)) - copy(hardcodedServers, slickVPNData.Servers) - hosts := make([]string, len(hardcodedServers)) - for i := range hardcodedServers { - hosts[i] = hardcodedServers[i].Hostname + hosts := make([]string, len(servers)) + for i := range servers { + hosts[i] = servers[i].Hostname } resolveSettings := parallelResolverSettings(hosts) @@ -44,14 +48,11 @@ func (u *Updater) FetchServers(ctx context.Context, minServers int) ( common.ErrNotEnoughServers, len(hosts), minServers) } - servers = make([]models.Server, 0, len(hostToIPs)) - for _, server := range hardcodedServers { - IPs, ok := hostToIPs[server.Hostname] - if !ok || len(IPs) == 0 { - continue - } - server.IPs = IPs - servers = append(servers, server) + for i := range servers { + servers[i].VPN = vpn.OpenVPN + servers[i].TCP = true + servers[i].UDP = true + servers[i].IPs = hostToIPs[servers[i].Hostname] } sort.Sort(models.SortableServers(servers)) diff --git a/internal/provider/slickvpn/updater/updater.go b/internal/provider/slickvpn/updater/updater.go index 4db9c0b4..df4427cc 100644 --- a/internal/provider/slickvpn/updater/updater.go +++ b/internal/provider/slickvpn/updater/updater.go @@ -10,16 +10,14 @@ type Updater struct { client *http.Client parallelResolver common.ParallelResolver warner common.Warner - storage common.Storage } func New(client *http.Client, warner common.Warner, - parallelResolver common.ParallelResolver, storage common.Storage, + parallelResolver common.ParallelResolver, ) *Updater { return &Updater{ client: client, parallelResolver: parallelResolver, warner: warner, - storage: storage, } } diff --git a/internal/storage/hardcoded.go b/internal/storage/hardcoded.go index b8a15bc4..23882b88 100644 --- a/internal/storage/hardcoded.go +++ b/internal/storage/hardcoded.go @@ -19,9 +19,3 @@ func parseHardcodedServers() (allServers models.AllServers, err error) { err = decoder.Decode(&allServers) return allServers, err } - -// HardcodedServers returns the hardcoded servers. -// Warning: mutating the returned value will impact the storage's internal state. -func (s *Storage) HardcodedServers() models.AllServers { - return s.hardcodedServers -} diff --git a/internal/storage/read.go b/internal/storage/read.go index dd602d94..cc37a998 100644 --- a/internal/storage/read.go +++ b/internal/storage/read.go @@ -12,7 +12,7 @@ import ( "golang.org/x/text/language" ) -// readFromFile reads the servers from servers.json. +// readFromFile reads the servers from server.json. // It only reads servers that have the same version as the hardcoded servers version // to avoid JSON decoding errors. func (s *Storage) readFromFile(filepath string, hardcodedVersions map[string]uint16) ( diff --git a/internal/storage/servers.json b/internal/storage/servers.json index 66b9dfc8..1c02e91b 100644 --- a/internal/storage/servers.json +++ b/internal/storage/servers.json @@ -286525,560 +286525,8 @@ }, "slickvpn": { "version": 1, - "timestamp": 1679747412, + "timestamp": 1766458996, "servers": [ - { - "vpn": "openvpn", - "country": "Australia", - "region": "Oceania", - "city": "Brisbane", - "hostname": "gw1.bne1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "43.245.160.142" - ] - }, - { - "vpn": "openvpn", - "country": "Australia", - "region": "Oceania", - "city": "Melbourne", - "hostname": "gw2.mel1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "113.52.144.50" - ] - }, - { - "vpn": "openvpn", - "country": "Australia", - "region": "Oceania", - "city": "Perth", - "hostname": "gw3.per1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "103.231.89.206" - ] - }, - { - "vpn": "openvpn", - "country": "Australia", - "region": "Oceania", - "city": "Sydney", - "hostname": "gw1.syd1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "163.47.126.10" - ] - }, - { - "vpn": "openvpn", - "country": "Australia", - "region": "Oceania", - "city": "Sydney", - "hostname": "gw1.syd2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "172.105.173.66" - ] - }, - { - "vpn": "openvpn", - "country": "Australia", - "region": "Oceania", - "city": "Sydney", - "hostname": "gw2.syd2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "172.105.168.12" - ] - }, - { - "vpn": "openvpn", - "country": "Austria", - "region": "Europe", - "city": "Graz", - "hostname": "gw1.grz1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "158.255.212.60" - ] - }, - { - "vpn": "openvpn", - "country": "Belgium", - "region": "Europe", - "city": "Ostend", - "hostname": "gw1.ost2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "192.71.249.22" - ] - }, - { - "vpn": "openvpn", - "country": "Belgium", - "region": "Europe", - "city": "Ostend", - "hostname": "gw2.ost2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "192.71.249.81" - ] - }, - { - "vpn": "openvpn", - "country": "Brazil", - "region": "South America", - "city": "Sao Paulo", - "hostname": "gw1.gru2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "177.54.158.153" - ] - }, - { - "vpn": "openvpn", - "country": "Canada", - "region": "North America", - "city": "Montreal", - "hostname": "gw1.yul1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "205.204.85.246" - ] - }, - { - "vpn": "openvpn", - "country": "Canada", - "region": "North America", - "city": "Montreal", - "hostname": "gw1.yul2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "173.209.62.178" - ] - }, - { - "vpn": "openvpn", - "country": "Canada", - "region": "North America", - "city": "Montreal", - "hostname": "gw2.yul2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "67.215.7.10" - ] - }, - { - "vpn": "openvpn", - "country": "Canada", - "region": "North America", - "city": "Toronto", - "hostname": "gw1.yyz1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "172.105.14.142" - ] - }, - { - "vpn": "openvpn", - "country": "Canada", - "region": "North America", - "city": "Toronto", - "hostname": "gw2.yyz1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "172.105.9.120" - ] - }, - { - "vpn": "openvpn", - "country": "Canada", - "region": "North America", - "city": "Vancouver", - "hostname": "gw1.yvr1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "192.111.132.46" - ] - }, - { - "vpn": "openvpn", - "country": "Chile", - "region": "South America", - "city": "Vina del Mar", - "hostname": "gw1.kna1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "37.235.52.26" - ] - }, - { - "vpn": "openvpn", - "country": "Czech Republic", - "region": "Europe", - "city": "Prague", - "hostname": "gw1.prg1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "46.36.36.51" - ] - }, - { - "vpn": "openvpn", - "country": "Czech Republic", - "region": "Europe", - "city": "Prague", - "hostname": "gw1.prg2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "193.235.207.24" - ] - }, - { - "vpn": "openvpn", - "country": "Czech Republic", - "region": "Europe", - "city": "Prague", - "hostname": "gw2.prg1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "46.36.36.98" - ] - }, - { - "vpn": "openvpn", - "country": "Denmark", - "region": "Europe", - "city": "Copenhagen", - "hostname": "gw1.cph1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "93.90.116.25" - ] - }, - { - "vpn": "openvpn", - "country": "France", - "region": "Europe", - "city": "Lille", - "hostname": "gw1.lil1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "5.135.81.27" - ] - }, - { - "vpn": "openvpn", - "country": "France", - "region": "Europe", - "city": "Paris", - "hostname": "gw1.cdg1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "176.67.168.241" - ] - }, - { - "vpn": "openvpn", - "country": "Germany", - "region": "Europe", - "city": "Frankfurt", - "hostname": "gw1.fra1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "139.162.159.184" - ] - }, - { - "vpn": "openvpn", - "country": "Germany", - "region": "Europe", - "city": "Frankfurt", - "hostname": "gw1.fra2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "109.123.80.62" - ] - }, - { - "vpn": "openvpn", - "country": "Germany", - "region": "Europe", - "city": "Frankfurt", - "hostname": "gw2.fra1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "139.162.175.126" - ] - }, - { - "vpn": "openvpn", - "country": "Germany", - "region": "Europe", - "city": "Nürnberg", - "hostname": "gw1.nue1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "31.7.187.233" - ] - }, - { - "vpn": "openvpn", - "country": "Greece", - "region": "Europe", - "city": "Athens", - "hostname": "gw1.ath1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.226.65.178" - ] - }, - { - "vpn": "openvpn", - "country": "Greece", - "region": "Europe", - "city": "Thessaloniki", - "hostname": "gw1.skg1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "192.71.166.19" - ] - }, - { - "vpn": "openvpn", - "country": "Hong Kong", - "region": "Asia", - "city": "Hong Kong", - "hostname": "gw1.hkg2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "158.255.208.240" - ] - }, - { - "vpn": "openvpn", - "country": "Hungary", - "region": "Europe", - "city": "Budapest", - "hostname": "gw1.bud1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "91.219.239.203" - ] - }, - { - "vpn": "openvpn", - "country": "Iceland", - "region": "Europe", - "city": "Reykjavik", - "hostname": "gw1.rkv1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "37.235.49.172" - ] - }, - { - "vpn": "openvpn", - "country": "India", - "region": "Asia", - "city": "Bangalore", - "hostname": "gw1.blr1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "139.59.42.121" - ] - }, - { - "vpn": "openvpn", - "country": "India", - "region": "Asia", - "city": "Mumbai", - "hostname": "gw1.bom1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "172.105.63.74" - ] - }, - { - "vpn": "openvpn", - "country": "Indonesia", - "region": "Asia", - "city": "Jakarta", - "hostname": "gw1.cgk1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "119.235.252.142" - ] - }, - { - "vpn": "openvpn", - "country": "Ireland", - "region": "Europe", - "city": "Dublin", - "hostname": "gw1.dub1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "92.51.242.25" - ] - }, - { - "vpn": "openvpn", - "country": "Israel", - "region": "Asia", - "city": "Tel Aviv Yafo", - "hostname": "gw1.tlv2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "193.182.144.37" - ] - }, - { - "vpn": "openvpn", - "country": "Italy", - "region": "Europe", - "city": "Milan", - "hostname": "gw1.mxp1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "37.247.49.148" - ] - }, - { - "vpn": "openvpn", - "country": "Italy", - "region": "Europe", - "city": "Milan", - "hostname": "gw1.mxp2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "149.154.157.221" - ] - }, - { - "vpn": "openvpn", - "country": "Italy", - "region": "Europe", - "city": "Milan", - "hostname": "gw2.mxp2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "149.154.157.112" - ] - }, - { - "vpn": "openvpn", - "country": "Japan", - "region": "Asia", - "city": "Tokyo", - "hostname": "gw1.nrt1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "172.105.235.210" - ] - }, - { - "vpn": "openvpn", - "country": "Malaysia", - "region": "Asia", - "city": "Kuala Lumpur", - "hostname": "gw1.kul1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "117.53.155.94" - ] - }, - { - "vpn": "openvpn", - "country": "Netherlands", - "region": "Europe", - "city": "Amsterdam", - "hostname": "gw1.ams1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "81.4.102.9" - ] - }, - { - "vpn": "openvpn", - "country": "Netherlands", - "region": "Europe", - "city": "Amsterdam", - "hostname": "gw1.ams2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.80.222.63" - ] - }, - { - "vpn": "openvpn", - "country": "Netherlands", - "region": "Europe", - "city": "Amsterdam", - "hostname": "gw1.ams3.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "151.236.14.29" - ] - }, - { - "vpn": "openvpn", - "country": "Netherlands", - "region": "Europe", - "city": "Amsterdam", - "hostname": "gw1.ams4.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.34.136.13" - ] - }, { "vpn": "openvpn", "country": "Netherlands", @@ -287091,126 +286539,6 @@ "151.236.14.57" ] }, - { - "vpn": "openvpn", - "country": "Norway", - "region": "Europe", - "city": "Torp", - "hostname": "gw1.trf1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.125.169.11" - ] - }, - { - "vpn": "openvpn", - "country": "Panama", - "region": "North America", - "city": "Panama City", - "hostname": "gw2.pty1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "181.174.164.64" - ] - }, - { - "vpn": "openvpn", - "country": "Poland", - "region": "Europe", - "city": "Warsaw", - "hostname": "gw1.waw1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "212.7.220.28" - ] - }, - { - "vpn": "openvpn", - "country": "Romania", - "region": "Europe", - "city": "Bucharest", - "hostname": "gw1.buh2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "89.46.100.116" - ] - }, - { - "vpn": "openvpn", - "country": "Russian Federation", - "region": "Europe", - "city": "Moscow", - "hostname": "gw1.svo1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "46.38.62.29" - ] - }, - { - "vpn": "openvpn", - "country": "Russian Federation", - "region": "Europe", - "city": "Moscow", - "hostname": "gw1.svo2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "213.183.56.34" - ] - }, - { - "vpn": "openvpn", - "country": "Russian Federation", - "region": "Europe", - "city": "St Petersburg", - "hostname": "gw1.led1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "213.183.54.28" - ] - }, - { - "vpn": "openvpn", - "country": "Serbia", - "region": "Europe", - "city": "Belgrade", - "hostname": "gw1.beg1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "194.71.126.18" - ] - }, - { - "vpn": "openvpn", - "country": "Singapore", - "region": "Asia", - "city": "Singapore", - "hostname": "gw1.sin1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "199.195.193.181" - ] - }, - { - "vpn": "openvpn", - "country": "Singapore", - "region": "Asia", - "city": "Singapore", - "hostname": "gw1.sin2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "139.162.23.150" - ] - }, { "vpn": "openvpn", "country": "Singapore", @@ -287223,234 +286551,6 @@ "139.162.55.80" ] }, - { - "vpn": "openvpn", - "country": "Slovenia", - "region": "Europe", - "city": "Ljubljana", - "hostname": "gw1.lju1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "192.71.244.13" - ] - }, - { - "vpn": "openvpn", - "country": "Spain", - "region": "Europe", - "city": "Barcelona", - "hostname": "gw2.bcn2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "5.134.119.168" - ] - }, - { - "vpn": "openvpn", - "country": "Spain", - "region": "Europe", - "city": "Madrid", - "hostname": "gw1.mad1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "37.235.53.46" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "region": "Europe", - "city": "Halmstad", - "hostname": "gw1.had2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "109.74.11.69" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "region": "Europe", - "city": "Stockholm", - "hostname": "gw1.arn1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "178.73.210.224" - ] - }, - { - "vpn": "openvpn", - "country": "Sweden", - "region": "Europe", - "city": "Stockholm", - "hostname": "gw1.arn3.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "159.253.26.130" - ] - }, - { - "vpn": "openvpn", - "country": "Switzerland", - "region": "Europe", - "city": "Zurich", - "hostname": "gw1.zrh1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "178.209.51.203" - ] - }, - { - "vpn": "openvpn", - "country": "Thailand", - "region": "Asia", - "city": "Bangkok", - "hostname": "gw1.bkk1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "124.109.1.191" - ] - }, - { - "vpn": "openvpn", - "country": "Ukraine", - "region": "Europe", - "city": "Kiev", - "hostname": "gw1.iev1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "176.107.177.226" - ] - }, - { - "vpn": "openvpn", - "country": "United Kingdom", - "region": "Europe", - "city": "Coventry", - "hostname": "gw1.cvt1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "77.74.195.22" - ] - }, - { - "vpn": "openvpn", - "country": "United Kingdom", - "region": "Europe", - "city": "Eastleigh near Southampton", - "hostname": "gw1.sou1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "78.143.255.174" - ] - }, - { - "vpn": "openvpn", - "country": "United Kingdom", - "region": "Europe", - "city": "Eastleigh near Southampton", - "hostname": "gw3.sou1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "78.143.255.175" - ] - }, - { - "vpn": "openvpn", - "country": "United Kingdom", - "region": "Europe", - "city": "Isle Of Man", - "hostname": "gw1.iom1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "37.235.55.43" - ] - }, - { - "vpn": "openvpn", - "country": "United Kingdom", - "region": "Europe", - "city": "London", - "hostname": "gw1.lhr1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "109.123.122.214" - ] - }, - { - "vpn": "openvpn", - "country": "United Kingdom", - "region": "Europe", - "city": "London", - "hostname": "gw1.lhr2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "176.58.120.179" - ] - }, - { - "vpn": "openvpn", - "country": "United Kingdom", - "region": "Europe", - "city": "London", - "hostname": "gw2.lhr2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "178.79.164.214" - ] - }, - { - "vpn": "openvpn", - "country": "United Kingdom", - "region": "Europe", - "city": "London", - "hostname": "gw3.lhr1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "37.123.117.149" - ] - }, - { - "vpn": "openvpn", - "country": "United Kingdom", - "region": "Europe", - "city": "London", - "hostname": "gw3.lhr2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "139.162.220.234" - ] - }, - { - "vpn": "openvpn", - "country": "United Kingdom", - "region": "Europe", - "city": "London", - "hostname": "gw4.lhr1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "146.185.17.165" - ] - }, { "vpn": "openvpn", "country": "United Kingdom", @@ -287463,54 +286563,6 @@ "91.109.246.6" ] }, - { - "vpn": "openvpn", - "country": "United Kingdom", - "region": "Europe", - "city": "Rochester", - "hostname": "gw1.rcs1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "91.227.223.185" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Atlanta", - "hostname": "gw1.atl1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "216.119.148.130" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Atlanta", - "hostname": "gw1.atl3.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "23.239.17.108" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Atlanta", - "hostname": "gw2.atl3.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "45.79.221.197" - ] - }, { "vpn": "openvpn", "country": "United States", @@ -287523,66 +286575,6 @@ "192.34.83.144" ] }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Buffalo", - "hostname": "gw1.buf1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "23.94.191.122" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Charlotte", - "hostname": "gw2.clt1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "192.154.255.210" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Chicago", - "hostname": "gw1.ord3.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "64.187.232.74" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Chicago", - "hostname": "gw1.ord4.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "206.217.136.90" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Chicago", - "hostname": "gw2.ord1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "174.127.124.132" - ] - }, { "vpn": "openvpn", "country": "United States", @@ -287595,78 +286587,6 @@ "207.182.134.3" ] }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Dallas", - "hostname": "gw1.dfw2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "174.127.75.120" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Dallas", - "hostname": "gw1.dfw3.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "96.126.113.159" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Dallas", - "hostname": "gw2.dfw3.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "198.58.117.6" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Dallas", - "hostname": "gw3.dfw3.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "104.237.128.245" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Denver", - "hostname": "gw1.den1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "23.237.26.56" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Dubuque", - "hostname": "gw1.dbq1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "199.102.44.15" - ] - }, { "vpn": "openvpn", "country": "United States", @@ -287691,30 +286611,6 @@ "192.187.101.186" ] }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Las Vegas", - "hostname": "gw1.las1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "104.143.10.8" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Los Angeles", - "hostname": "gw1.lax1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "172.245.220.35" - ] - }, { "vpn": "openvpn", "country": "United States", @@ -287727,66 +286623,6 @@ "104.247.220.10" ] }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Los Angeles", - "hostname": "gw3.lax3.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "107.160.101.199" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Miami", - "hostname": "gw2.mia3.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "192.171.19.130" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Miami", - "hostname": "gw2.mia4.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "199.127.62.98" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Morganton", - "hostname": "gw1.mrn1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "199.241.190.29" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "New York", - "hostname": "gw1.lga1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "206.217.128.67" - ] - }, { "vpn": "openvpn", "country": "United States", @@ -287799,90 +286635,6 @@ "206.221.178.210" ] }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Newark", - "hostname": "gw1.ewr1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "45.33.81.117" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Newark", - "hostname": "gw2.ewr1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "162.216.19.236" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Newark", - "hostname": "gw3.ewr1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "50.116.54.120" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Palo Alto", - "hostname": "gw1.pao1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "192.81.128.78" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Palo Alto", - "hostname": "gw2.pao1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "45.79.88.135" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Palo Alto", - "hostname": "gw3.pao1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "173.255.243.165" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Phoenix", - "hostname": "gw1.phx2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "198.15.66.67" - ] - }, { "vpn": "openvpn", "country": "United States", @@ -287895,54 +286647,6 @@ "209.95.48.179" ] }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "San Diego", - "hostname": "gw1.san1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "108.161.151.123" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "San Jose", - "hostname": "gw1.sjc2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "199.195.192.104" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Seattle", - "hostname": "gw1.sea1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "107.181.191.68" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Seattle", - "hostname": "gw1.sea2.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "167.88.112.78" - ] - }, { "vpn": "openvpn", "country": "United States", @@ -287954,54 +286658,6 @@ "ips": [ "209.135.132.136" ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Tampa", - "hostname": "gw1.tpa1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "104.156.54.182" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Washington", - "hostname": "gw1.iad1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.151.12.218" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Washington", - "hostname": "gw2.iad1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.151.12.226" - ] - }, - { - "vpn": "openvpn", - "country": "United States", - "region": "North America", - "city": "Washington", - "hostname": "gw3.iad1.slickvpn.com", - "tcp": true, - "udp": true, - "ips": [ - "185.151.12.242" - ] } ] }, @@ -306165,4 +304821,4 @@ } ] } -} \ No newline at end of file +} diff --git a/internal/updater/html/match.go b/internal/updater/html/match.go index 82999a34..8939d87c 100644 --- a/internal/updater/html/match.go +++ b/internal/updater/html/match.go @@ -22,12 +22,6 @@ func MatchData(data string) MatchFunc { } } -func MatchClasses(classStrings ...string) MatchFunc { - return func(node *html.Node) (match bool) { - return HasClassStrings(node, classStrings...) - } -} - func DirectChild(parent *html.Node, matchFunc MatchFunc, ) (child *html.Node) {