diff --git a/client/universe/universe_client.go b/client/universe/universe_client.go index ee055d8..360efa2 100644 --- a/client/universe/universe_client.go +++ b/client/universe/universe_client.go @@ -513,7 +513,7 @@ func (a *Client) PostUniverseNames(params *PostUniverseNamesParams) (*PostUniver Method: "POST", PathPattern: "/universe/names/", ProducesMediaTypes: []string{"application/json"}, - ConsumesMediaTypes: []string{""}, + ConsumesMediaTypes: []string{"application/json"}, Schemes: []string{"https"}, Params: params, Reader: &PostUniverseNamesReader{formats: a.formats}, diff --git a/main.go b/main.go index a696876..b587085 100644 --- a/main.go +++ b/main.go @@ -117,7 +117,7 @@ func getCharacterSkillQueue(client *http.Client, m *Character) { skillMissingNames := make(map[int32]string) for _, skill := range skillqueue { - skillName := getCachedData(fmt.Sprintf("%d.name", skill.SkillID)) + skillName := getCachedData(fmt.Sprintf("%d.name", *skill.SkillID)) if skillName != "" { skillNames[*skill.SkillID] = skillName } else { @@ -125,40 +125,48 @@ func getCharacterSkillQueue(client *http.Client, m *Character) { } } - snIds := make([]int32, 0, len(skillMissingNames)) - for skillID := range skillMissingNames { - snIds = append(snIds, skillID) - } + if len(skillMissingNames) > 0 { + snIds := make([]int32, 0, len(skillMissingNames)) + for skillID := range skillMissingNames { + snIds = append(snIds, skillID) + } - var sncallParamBody ESIUniverse.PostUniverseNamesBody - sncallParamBody.Ids = snIds + var sncallParamBody ESIUniverse.PostUniverseNamesBody + sncallParamBody.Ids = snIds - sncallParam := ESIUniverse.NewPostUniverseNamesParams() - sncallParam.SetIds(sncallParamBody) + sncallParam := ESIUniverse.NewPostUniverseNamesParams() + sncallParam.SetIds(sncallParamBody) - skillNameResp, skillNameErr := swaggerclient.Universe.PostUniverseNames(sncallParam) - if skillNameErr != nil { - log.Fatalf("Error on PostUniverseNames\n%s\n", skillNameErr) - } + skillNameResp, skillNameErr := swaggerclient.Universe.PostUniverseNames(sncallParam) + if skillNameErr != nil { + log.Fatalf("Error on PostUniverseNames\n%s\n", skillNameErr) + } - for _, searchResult := range skillNameResp.Payload { - itemName := searchResult.Name - itemID := searchResult.ID + for _, searchResult := range skillNameResp.Payload { + itemName := searchResult.Name + itemID := searchResult.ID - log.Printf("Got search result %d -> %s", *itemID, *itemName) + putCacheData(fmt.Sprintf("%d.name", *itemID), *itemName) - putCacheData(fmt.Sprintf("%d.name", *itemID), *itemName) - - skillNames[*itemID] = *itemName + skillNames[*itemID] = *itemName + } } for _, skill := range skillqueue { // element is the element from someSlice for where we are name := skillNames[*skill.SkillID] - fmt.Printf(" %s: %d, level %d - %s to %s\n", + finishDate := time.Time(skill.FinishDate) + + // see https://github.com/ccpgames/esi-issues/issues/113 + // The queue is only updated when the user logs in with the client + // we thus need to do the computations and filtering ourselves + if finishDate.Before(time.Now()) { + continue + } + + fmt.Printf(" %s - level %d - %s to %s\n", name, - *skill.SkillID, *skill.FinishedLevel, time.Time(skill.StartDate).Format("_2 Jan 2006, 15:04"), time.Time(skill.FinishDate).Format("_2 Jan 2006, 15:04"))