fix: add fallback to not gzziped version

This commit is contained in:
Dawid Wysokiński 2021-07-17 11:28:47 +02:00
parent 8763e0013d
commit e9473847ca
1 changed files with 19 additions and 4 deletions

View File

@ -91,9 +91,12 @@ func (dl *ServerDataLoader) LoadOD(tribe bool) (map[int]*twmodel.OpponentsDefeat
continue
}
lines, err := dl.getCSVData(formattedURL, true)
if err != nil {
lines, err = dl.getCSVData(strings.ReplaceAll(formattedURL, ".gz", ""), false)
if err != nil {
return nil, errors.Wrapf(err, "couldn't load data, formattedURL %s", formattedURL)
}
}
for _, line := range lines {
parsed, err := dl.parseODLine(line)
if err != nil {
@ -163,7 +166,10 @@ func (dl *ServerDataLoader) LoadPlayers() ([]*twmodel.Player, error) {
formattedURL := buildURL(dl.baseURL, EndpointPlayer)
lines, err := dl.getCSVData(formattedURL, true)
if err != nil {
return nil, errors.Wrapf(err, "couldn't load data, url %s", formattedURL)
lines, err = dl.getCSVData(strings.ReplaceAll(formattedURL, ".gz", ""), false)
if err != nil {
return nil, errors.Wrapf(err, "couldn't load data, formattedURL %s", formattedURL)
}
}
var players []*twmodel.Player
@ -227,9 +233,12 @@ func (dl *ServerDataLoader) parseTribeLine(line []string) (*twmodel.Tribe, error
func (dl *ServerDataLoader) LoadTribes() ([]*twmodel.Tribe, error) {
formattedURL := buildURL(dl.baseURL, EndpointTribe)
lines, err := dl.getCSVData(formattedURL, true)
if err != nil {
lines, err = dl.getCSVData(dl.baseURL+EndpointTribeNotGzipped, false)
if err != nil {
return nil, errors.Wrapf(err, "couldn't load data, url %s", formattedURL)
}
}
var tribes []*twmodel.Tribe
for _, line := range lines {
tribe, err := dl.parseTribeLine(line)
@ -281,9 +290,12 @@ func (dl *ServerDataLoader) parseVillageLine(line []string) (*twmodel.Village, e
func (dl *ServerDataLoader) LoadVillages() ([]*twmodel.Village, error) {
formattedURL := buildURL(dl.baseURL, EndpointVillage)
lines, err := dl.getCSVData(formattedURL, true)
if err != nil {
lines, err = dl.getCSVData(dl.baseURL+EndpointVillageNotGzipped, false)
if err != nil {
return nil, errors.Wrapf(err, "couldn't load data, formattedURL %s", formattedURL)
}
}
var villages []*twmodel.Village
for _, line := range lines {
village, err := dl.parseVillageLine(line)
@ -338,6 +350,9 @@ func (dl *ServerDataLoader) LoadEnnoblements(cfg *LoadEnnoblementsConfig) ([]*tw
compressed = false
}
lines, err := dl.getCSVData(formattedURL, compressed)
if err != nil && compressed {
lines, err = dl.getCSVData(dl.baseURL+EndpointConquerNotGzipped, false)
}
if err != nil {
return nil, errors.Wrapf(err, "couldn't load data, formattedURL %s", formattedURL)
}