rename file server_handler -> update_server_data_handler, rename struct serverHandler -> updateServerDataHandler
This commit is contained in:
parent
803dc9b9c2
commit
2c669bf778
|
@ -169,23 +169,23 @@ func (h *handler) updateData() {
|
||||||
for _, server := range servers {
|
for _, server := range servers {
|
||||||
url, ok := urls[server.Key]
|
url, ok := urls[server.Key]
|
||||||
if !ok {
|
if !ok {
|
||||||
log.Printf("No one URL associated with key: %s in a map, skipping...", server.Key)
|
log.Printf("No one URL associated with key: %s, skipping...", server.Key)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
if count >= max {
|
if count >= max {
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
count = 0
|
count = 0
|
||||||
}
|
}
|
||||||
sh := &serverHandler{
|
sh := &updateServerDataHandler{
|
||||||
db: h.db.WithParam("SERVER", pg.Safe(server.Key)),
|
db: h.db.WithParam("SERVER", pg.Safe(server.Key)),
|
||||||
baseURL: url,
|
baseURL: url,
|
||||||
}
|
}
|
||||||
count++
|
count++
|
||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func(server *models.Server, sh *serverHandler) {
|
go func(server *models.Server, sh *updateServerDataHandler) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
log.Printf("%s: Updating", server.Key)
|
log.Printf("%s: Updating", server.Key)
|
||||||
if err := sh.updateData(); err != nil {
|
if err := sh.update(); err != nil {
|
||||||
log.Println(errors.Wrap(err, server.Key))
|
log.Println(errors.Wrap(err, server.Key))
|
||||||
} else {
|
} else {
|
||||||
log.Printf("%s: updated", server.Key)
|
log.Printf("%s: updated", server.Key)
|
||||||
|
|
|
@ -19,7 +19,7 @@ func uncompressAndGetCsvLines(r io.Reader) ([][]string, error) {
|
||||||
func getCSVData(url string, compressed bool) ([][]string, error) {
|
func getCSVData(url string, compressed bool) ([][]string, error) {
|
||||||
resp, err := http.Get(url)
|
resp, err := http.Get(url)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return [][]string{}, nil
|
return nil, err
|
||||||
}
|
}
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
if !compressed {
|
if !compressed {
|
||||||
|
|
|
@ -25,7 +25,7 @@ const (
|
||||||
endpointKillAllTribe = "/map/kill_all_tribe.txt"
|
endpointKillAllTribe = "/map/kill_all_tribe.txt"
|
||||||
)
|
)
|
||||||
|
|
||||||
type serverHandler struct {
|
type updateServerDataHandler struct {
|
||||||
baseURL string
|
baseURL string
|
||||||
db *pg.DB
|
db *pg.DB
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ type parsedODLine struct {
|
||||||
Score int
|
Score int
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *serverHandler) parseODLine(line []string) (*parsedODLine, error) {
|
func (h *updateServerDataHandler) parseODLine(line []string) (*parsedODLine, error) {
|
||||||
if len(line) != 3 {
|
if len(line) != 3 {
|
||||||
return nil, fmt.Errorf("Invalid line format (should be rank,id,score)")
|
return nil, fmt.Errorf("Invalid line format (should be rank,id,score)")
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ func (h *serverHandler) parseODLine(line []string) (*parsedODLine, error) {
|
||||||
return p, nil
|
return p, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *serverHandler) getOD(tribe bool) (map[int]*models.OpponentsDefeated, error) {
|
func (h *updateServerDataHandler) getOD(tribe bool) (map[int]*models.OpponentsDefeated, error) {
|
||||||
m := make(map[int]*models.OpponentsDefeated)
|
m := make(map[int]*models.OpponentsDefeated)
|
||||||
urls := []string{
|
urls := []string{
|
||||||
fmt.Sprintf("%s%s", h.baseURL, endpointKillAll),
|
fmt.Sprintf("%s%s", h.baseURL, endpointKillAll),
|
||||||
|
@ -70,6 +70,7 @@ func (h *serverHandler) getOD(tribe bool) (map[int]*models.OpponentsDefeated, er
|
||||||
fmt.Sprintf("%s%s", h.baseURL, endpointKillAllTribe),
|
fmt.Sprintf("%s%s", h.baseURL, endpointKillAllTribe),
|
||||||
fmt.Sprintf("%s%s", h.baseURL, endpointKillAttTribe),
|
fmt.Sprintf("%s%s", h.baseURL, endpointKillAttTribe),
|
||||||
fmt.Sprintf("%s%s", h.baseURL, endpointKillDefTribe),
|
fmt.Sprintf("%s%s", h.baseURL, endpointKillDefTribe),
|
||||||
|
"",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, url := range urls {
|
for _, url := range urls {
|
||||||
|
@ -85,16 +86,17 @@ func (h *serverHandler) getOD(tribe bool) (map[int]*models.OpponentsDefeated, er
|
||||||
if _, ok := m[parsed.ID]; !ok {
|
if _, ok := m[parsed.ID]; !ok {
|
||||||
m[parsed.ID] = &models.OpponentsDefeated{}
|
m[parsed.ID] = &models.OpponentsDefeated{}
|
||||||
}
|
}
|
||||||
if url == urls[0] {
|
switch url {
|
||||||
|
case urls[0]:
|
||||||
m[parsed.ID].RankTotal = parsed.Rank
|
m[parsed.ID].RankTotal = parsed.Rank
|
||||||
m[parsed.ID].ScoreTotal = parsed.Score
|
m[parsed.ID].ScoreTotal = parsed.Score
|
||||||
} else if url == urls[1] {
|
case urls[1]:
|
||||||
m[parsed.ID].RankAtt = parsed.Rank
|
m[parsed.ID].RankAtt = parsed.Rank
|
||||||
m[parsed.ID].ScoreAtt = parsed.Score
|
m[parsed.ID].ScoreAtt = parsed.Score
|
||||||
} else if url == urls[2] {
|
case urls[2]:
|
||||||
m[parsed.ID].RankDef = parsed.Rank
|
m[parsed.ID].RankDef = parsed.Rank
|
||||||
m[parsed.ID].ScoreDef = parsed.Score
|
m[parsed.ID].ScoreDef = parsed.Score
|
||||||
} else if !tribe && url == urls[3] {
|
case urls[3]:
|
||||||
m[parsed.ID].RankSup = parsed.Rank
|
m[parsed.ID].RankSup = parsed.Rank
|
||||||
m[parsed.ID].ScoreSup = parsed.Score
|
m[parsed.ID].ScoreSup = parsed.Score
|
||||||
}
|
}
|
||||||
|
@ -103,7 +105,7 @@ func (h *serverHandler) getOD(tribe bool) (map[int]*models.OpponentsDefeated, er
|
||||||
return m, nil
|
return m, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *serverHandler) parsePlayerLine(line []string) (*models.Player, error) {
|
func (h *updateServerDataHandler) parsePlayerLine(line []string) (*models.Player, error) {
|
||||||
if len(line) != 6 {
|
if len(line) != 6 {
|
||||||
return nil, fmt.Errorf("Invalid line format (should be id,name,tribeid,villages,points,rank)")
|
return nil, fmt.Errorf("Invalid line format (should be id,name,tribeid,villages,points,rank)")
|
||||||
}
|
}
|
||||||
|
@ -141,7 +143,7 @@ func (h *serverHandler) parsePlayerLine(line []string) (*models.Player, error) {
|
||||||
return player, nil
|
return player, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *serverHandler) getPlayers(od map[int]*models.OpponentsDefeated) ([]*models.Player, error) {
|
func (h *updateServerDataHandler) getPlayers(od map[int]*models.OpponentsDefeated) ([]*models.Player, error) {
|
||||||
url := h.baseURL + endpointPlayers
|
url := h.baseURL + endpointPlayers
|
||||||
lines, err := getCSVData(url, false)
|
lines, err := getCSVData(url, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -164,7 +166,7 @@ func (h *serverHandler) getPlayers(od map[int]*models.OpponentsDefeated) ([]*mod
|
||||||
return players, nil
|
return players, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *serverHandler) parseTribeLine(line []string) (*models.Tribe, error) {
|
func (h *updateServerDataHandler) parseTribeLine(line []string) (*models.Tribe, error) {
|
||||||
if len(line) != 8 {
|
if len(line) != 8 {
|
||||||
return nil, fmt.Errorf("Invalid line format (should be id,name,tag,members,villages,points,allpoints,rank)")
|
return nil, fmt.Errorf("Invalid line format (should be id,name,tag,members,villages,points,allpoints,rank)")
|
||||||
}
|
}
|
||||||
|
@ -210,7 +212,7 @@ func (h *serverHandler) parseTribeLine(line []string) (*models.Tribe, error) {
|
||||||
return tribe, nil
|
return tribe, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *serverHandler) getTribes(od map[int]*models.OpponentsDefeated) ([]*models.Tribe, error) {
|
func (h *updateServerDataHandler) getTribes(od map[int]*models.OpponentsDefeated) ([]*models.Tribe, error) {
|
||||||
url := h.baseURL + endpointTribe
|
url := h.baseURL + endpointTribe
|
||||||
lines, err := getCSVData(url, false)
|
lines, err := getCSVData(url, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -231,7 +233,7 @@ func (h *serverHandler) getTribes(od map[int]*models.OpponentsDefeated) ([]*mode
|
||||||
return tribes, nil
|
return tribes, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *serverHandler) parseVillageLine(line []string) (*models.Village, error) {
|
func (h *updateServerDataHandler) parseVillageLine(line []string) (*models.Village, error) {
|
||||||
if len(line) != 7 {
|
if len(line) != 7 {
|
||||||
return nil, fmt.Errorf("Invalid line format (should be id,name,x,y,playerID,points,bonus)")
|
return nil, fmt.Errorf("Invalid line format (should be id,name,x,y,playerID,points,bonus)")
|
||||||
}
|
}
|
||||||
|
@ -268,7 +270,7 @@ func (h *serverHandler) parseVillageLine(line []string) (*models.Village, error)
|
||||||
return village, nil
|
return village, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *serverHandler) getVillages() ([]*models.Village, error) {
|
func (h *updateServerDataHandler) getVillages() ([]*models.Village, error) {
|
||||||
url := h.baseURL + endpointVillage
|
url := h.baseURL + endpointVillage
|
||||||
lines, err := getCSVData(url, false)
|
lines, err := getCSVData(url, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -285,7 +287,7 @@ func (h *serverHandler) getVillages() ([]*models.Village, error) {
|
||||||
return villages, nil
|
return villages, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *serverHandler) updateData() error {
|
func (h *updateServerDataHandler) update() error {
|
||||||
pod, err := h.getOD(false)
|
pod, err := h.getOD(false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
Reference in New Issue
Block a user