Maint: hardcoded data in JSON embedded file
- Server information, versions and timestamps together in internal/constants/servers.json - breaking change: updater cli uses -enduser instead of -file - breaking change: updater cli uses -maintainer instead of -stdout - Fix: replace special last a character with 'a' from Bogota for PrivateVPN - Feat: do not write out servers and timestamp if no change was detected
This commit is contained in:
@@ -1,95 +1,29 @@
|
||||
package constants
|
||||
|
||||
import "github.com/qdm12/gluetun/internal/models"
|
||||
import (
|
||||
_ "embed"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/qdm12/gluetun/internal/models"
|
||||
)
|
||||
|
||||
//go:embed servers.json
|
||||
var allServersBytes []byte //nolint:gochecknoglobals
|
||||
var allServers models.AllServers //nolint:gochecknoglobals
|
||||
|
||||
func init() { //nolint:gochecknoinits
|
||||
// error returned covered by unit test
|
||||
allServers, _ = parseAllServers(allServersBytes)
|
||||
}
|
||||
|
||||
func parseAllServers(b []byte) (allServers models.AllServers, err error) {
|
||||
err = json.Unmarshal(b, &allServers)
|
||||
return allServers, err
|
||||
}
|
||||
|
||||
func GetAllServers() (allServers models.AllServers) {
|
||||
//nolint:gomnd
|
||||
return models.AllServers{
|
||||
Version: 1, // used for migration of the top level scheme
|
||||
Cyberghost: models.CyberghostServers{
|
||||
Version: 2, // model version
|
||||
Timestamp: 1624307338, // latest takes precedence
|
||||
Servers: CyberghostServers(),
|
||||
},
|
||||
Fastestvpn: models.FastestvpnServers{
|
||||
Version: 1,
|
||||
Timestamp: 1620435633,
|
||||
Servers: FastestvpnServers(),
|
||||
},
|
||||
HideMyAss: models.HideMyAssServers{
|
||||
Version: 1,
|
||||
Timestamp: 1620435633,
|
||||
Servers: HideMyAssServers(),
|
||||
},
|
||||
Ipvanish: models.IpvanishServers{
|
||||
Version: 1,
|
||||
Timestamp: 1625164062,
|
||||
Servers: IpvanishServers(),
|
||||
},
|
||||
Ivpn: models.IvpnServers{
|
||||
Version: 1,
|
||||
Timestamp: 1624120443,
|
||||
Servers: IvpnServers(),
|
||||
},
|
||||
Mullvad: models.MullvadServers{
|
||||
Version: 2,
|
||||
Timestamp: 1620500848,
|
||||
Servers: MullvadServers(),
|
||||
},
|
||||
Nordvpn: models.NordvpnServers{
|
||||
Version: 2,
|
||||
Timestamp: 1620514180,
|
||||
Servers: NordvpnServers(),
|
||||
},
|
||||
Privado: models.PrivadoServers{
|
||||
Version: 3,
|
||||
Timestamp: 1620520278,
|
||||
Servers: PrivadoServers(),
|
||||
},
|
||||
Privatevpn: models.PrivatevpnServers{
|
||||
Version: 1,
|
||||
Timestamp: 1620435633,
|
||||
Servers: PrivatevpnServers(),
|
||||
},
|
||||
Protonvpn: models.ProtonvpnServers{
|
||||
Version: 1,
|
||||
Timestamp: 1624894186,
|
||||
Servers: ProtonvpnServers(),
|
||||
},
|
||||
Pia: models.PiaServers{
|
||||
Version: 6,
|
||||
Timestamp: 1620663401,
|
||||
Servers: PIAServers(),
|
||||
},
|
||||
Purevpn: models.PurevpnServers{
|
||||
Version: 2,
|
||||
Timestamp: 1622644308,
|
||||
Servers: PurevpnServers(),
|
||||
},
|
||||
Surfshark: models.SurfsharkServers{
|
||||
Version: 2,
|
||||
Timestamp: 1620607876,
|
||||
Servers: SurfsharkServers(),
|
||||
},
|
||||
Torguard: models.TorguardServers{
|
||||
Version: 2,
|
||||
Timestamp: 1620611129,
|
||||
Servers: TorguardServers(),
|
||||
},
|
||||
VPNUnlimited: models.VPNUnlimitedServers{
|
||||
Version: 1,
|
||||
Timestamp: 1623950304,
|
||||
Servers: VPNUnlimitedServers(),
|
||||
},
|
||||
Vyprvpn: models.VyprvpnServers{
|
||||
Version: 2,
|
||||
Timestamp: 1620612506,
|
||||
Servers: VyprvpnServers(),
|
||||
},
|
||||
Windscribe: models.WindscribeServers{
|
||||
Version: 3,
|
||||
Timestamp: 1620657134,
|
||||
Servers: WindscribeServers(),
|
||||
},
|
||||
if allServers.Version == 0 { // not parsed yet - for unit tests mostly
|
||||
allServers, _ = parseAllServers(allServersBytes)
|
||||
}
|
||||
return allServers
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user