csv reader shouldn't return error about lazy quotes from now, lang versions are sorted alphabetically

This commit is contained in:
Dawid Wysokiński 2020-10-10 10:46:47 +02:00
parent 8bec38dae5
commit fc0af6a9f3
2 changed files with 9 additions and 3 deletions

View File

@ -145,7 +145,7 @@ func (h *handler) createSchema(server *models.Server) error {
func (h *handler) getServers() ([]*models.Server, map[string]string, error) {
log.Print("Loading servers...")
langVersions := []*models.LangVersion{}
if err := h.db.Model(&langVersions).Relation("SpecialServers").Select(); err != nil {
if err := h.db.Model(&langVersions).Relation("SpecialServers").Order("tag ASC").Select(); err != nil {
return nil, nil, errors.Wrap(err, "getServers")
}

View File

@ -16,13 +16,19 @@ var client = &http.Client{
Timeout: 20 * time.Second,
}
func newCsvReader(r io.Reader) *csv.Reader {
csvReader := csv.NewReader(r)
csvReader.LazyQuotes = true
return csvReader
}
func uncompressAndReadCsvLines(r io.Reader) ([][]string, error) {
uncompressedStream, err := gzip.NewReader(r)
if err != nil {
return [][]string{}, err
}
defer uncompressedStream.Close()
return csv.NewReader(uncompressedStream).ReadAll()
return newCsvReader(uncompressedStream).ReadAll()
}
func getCSVData(url string, compressed bool) ([][]string, error) {
@ -32,7 +38,7 @@ func getCSVData(url string, compressed bool) ([][]string, error) {
}
defer resp.Body.Close()
if !compressed {
return csv.NewReader(resp.Body).ReadAll()
return newCsvReader(resp.Body).ReadAll()
}
return uncompressAndReadCsvLines(resp.Body)
}