From c3b06c71a9db14d61e36da9272c43751b6c78f73 Mon Sep 17 00:00:00 2001 From: Kichiyaki Date: Fri, 15 Jan 2021 19:32:36 +0100 Subject: [PATCH] replace the deprecated liveEnnoblements query with the ennoblements query --- cron/ennoblements.go | 4 +-- cron/handler.go | 69 +++++++++++++++++++++++++------------------- cron/helpers.go | 13 --------- cron/message.go | 2 +- go.mod | 4 +-- go.sum | 8 ++--- main.go | 1 + 7 files changed, 49 insertions(+), 52 deletions(-) diff --git a/cron/ennoblements.go b/cron/ennoblements.go index 10f693f..621f7de 100644 --- a/cron/ennoblements.go +++ b/cron/ennoblements.go @@ -5,9 +5,9 @@ import ( shared_models "github.com/tribalwarshelp/shared/models" ) -type ennoblements []*shared_models.LiveEnnoblement +type ennoblements []*shared_models.Ennoblement -func (e ennoblements) getLastEnnoblement() *shared_models.LiveEnnoblement { +func (e ennoblements) getLastEnnoblement() *shared_models.Ennoblement { length := len(e) if length <= 0 { return nil diff --git a/cron/handler.go b/cron/handler.go index 6b0080e..c8ada1c 100644 --- a/cron/handler.go +++ b/cron/handler.go @@ -42,47 +42,56 @@ func (h *handler) loadEnnoblements(servers []string) (map[string]ennoblements, e query := "" - for _, w := range servers { - query += fmt.Sprintf(` - %s: liveEnnoblements(server: "%s") { - %s - ennobledAt - } - `, w, w, sdk.LiveEnnoblementInclude{ - NewOwner: true, - Village: true, - NewOwnerInclude: sdk.PlayerInclude{ - Tribe: true, - }, - OldOwner: true, - OldOwnerInclude: sdk.PlayerInclude{ - Tribe: true, - }, - }.String()) - } - - resp := make(map[string]ennoblements) - - if err := h.api.Post(fmt.Sprintf(`query { %s }`, query), &resp); err != nil { - return m, errors.Wrap(err, "loadEnnoblements") - } - - for server, ennoblements := range resp { + for _, server := range servers { lastEnnoblementAt, ok := h.lastEnnoblementAt[server] if !ok { lastEnnoblementAt = time.Now().Add(-1 * time.Minute) } if mode.Get() == mode.DevelopmentMode { - lastEnnoblementAt = time.Now().Add(-60 * time.Minute * 23) + lastEnnoblementAt = time.Now().Add(-1 * time.Hour * 2) } + log.Println(h.lastEnnoblementAt) + lastEnnoblementAtJSON, err := lastEnnoblementAt.MarshalJSON() + if err != nil { + continue + } + query += fmt.Sprintf(` + %s: ennoblements(server: "%s", filter: { ennobledAtGT: %s }) { + items { + %s + ennobledAt + } + } + `, server, + server, + string(lastEnnoblementAtJSON), + sdk.EnnoblementInclude{ + NewOwner: true, + Village: true, + NewOwnerInclude: sdk.PlayerInclude{ + Tribe: true, + }, + OldOwner: true, + OldOwnerInclude: sdk.PlayerInclude{ + Tribe: true, + }, + }.String()) + } - m[server] = getRecentEnnoblements(ennoblements, lastEnnoblementAt) + resp := make(map[string]*sdk.EnnoblementList) + if err := h.api.Post(fmt.Sprintf(`query { %s }`, query), &resp); err != nil { + return m, errors.Wrap(err, "loadEnnoblements") + } + for server, singleServerResp := range resp { + if singleServerResp == nil { + continue + } + m[server] = ennoblements(singleServerResp.Items) lastEnnoblement := m[server].getLastEnnoblement() if lastEnnoblement != nil { - lastEnnoblementAt = lastEnnoblement.EnnobledAt + h.lastEnnoblementAt[server] = lastEnnoblement.EnnobledAt } - h.lastEnnoblementAt[server] = lastEnnoblementAt } return m, nil diff --git a/cron/helpers.go b/cron/helpers.go index c2b4189..ed1a1b3 100644 --- a/cron/helpers.go +++ b/cron/helpers.go @@ -1,23 +1,10 @@ package cron import ( - "time" - "github.com/tribalwarshelp/dcbot/utils" shared_models "github.com/tribalwarshelp/shared/models" ) -func getRecentEnnoblements(ennoblements []*shared_models.LiveEnnoblement, t time.Time) []*shared_models.LiveEnnoblement { - filtered := []*shared_models.LiveEnnoblement{} - for _, ennoblement := range ennoblements { - if ennoblement.EnnobledAt.Before(t) || ennoblement.EnnobledAt.Equal(t) { - continue - } - filtered = append(filtered, ennoblement) - } - return filtered -} - func isBarbarian(p *shared_models.Player) bool { return utils.IsPlayerNil(p) || p.ID == 0 } diff --git a/cron/message.go b/cron/message.go index f71fa43..f35869a 100644 --- a/cron/message.go +++ b/cron/message.go @@ -38,7 +38,7 @@ type newMessageConfig struct { t messageType host string server string - ennoblement *shared_models.LiveEnnoblement + ennoblement *shared_models.Ennoblement localizer *i18n.Localizer } diff --git a/go.mod b/go.mod index 56a87bd..6494242 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/robfig/cron/v3 v3.0.1 github.com/sirupsen/logrus v1.7.0 - github.com/tribalwarshelp/golang-sdk v0.0.0-20210109140547-96a34cf3e791 - github.com/tribalwarshelp/shared v0.0.0-20210109140005-237443e96235 + github.com/tribalwarshelp/golang-sdk v0.0.0-20210115181344-377475f6124a + github.com/tribalwarshelp/shared v0.0.0-20210115163415-972e2df3f7db golang.org/x/text v0.3.3 ) diff --git a/go.sum b/go.sum index 27fdf48..b731276 100644 --- a/go.sum +++ b/go.sum @@ -102,10 +102,10 @@ github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc h1:9lRDQMhESg+zvGYmW5DyG0UqvY96Bu5QYsTLvCHdrgo= github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc/go.mod h1:bciPuU6GHm1iF1pBvUfxfsH0Wmnc2VbpgvbI9ZWuIRs= -github.com/tribalwarshelp/golang-sdk v0.0.0-20210109140547-96a34cf3e791 h1:fkNzajsxRT1A9AtKQBcpdfS8EwhYrjdDpOq8+niLioQ= -github.com/tribalwarshelp/golang-sdk v0.0.0-20210109140547-96a34cf3e791/go.mod h1:X2RzUUQuCWXS+CU67g0Pdjndfaao6xKzIVSlhta/glI= -github.com/tribalwarshelp/shared v0.0.0-20210109140005-237443e96235 h1:VMc5zgClXx9IPMK4ttyVpElrOr4dWZ/gKMlASzpiuzA= -github.com/tribalwarshelp/shared v0.0.0-20210109140005-237443e96235/go.mod h1:vtDs7EjEysk4dpFPfu3c4lkICXZYIRV0BrT7rsqG0dw= +github.com/tribalwarshelp/golang-sdk v0.0.0-20210115181344-377475f6124a h1:FgGlIfBeZUvX12GfBVKL5urrHA50mozrCqnp0f+tYlM= +github.com/tribalwarshelp/golang-sdk v0.0.0-20210115181344-377475f6124a/go.mod h1:5TV566+A6eY09l+6UfUVdWTJTLnFAHj+n956azq1hkM= +github.com/tribalwarshelp/shared v0.0.0-20210115163415-972e2df3f7db h1:RzMEF4BP3YJ7jJOyYO00TdeB6DY7g0Dp/8cQ8t6WKzw= +github.com/tribalwarshelp/shared v0.0.0-20210115163415-972e2df3f7db/go.mod h1:vtDs7EjEysk4dpFPfu3c4lkICXZYIRV0BrT7rsqG0dw= github.com/vmihailenco/bufpool v0.1.11 h1:gOq2WmBrq0i2yW5QJ16ykccQ4wH9UyEsgLm6czKAd94= github.com/vmihailenco/bufpool v0.1.11/go.mod h1:AFf/MOy3l2CFTKbxwt0mp2MwnqjNEs5H/UxrkA5jxTQ= github.com/vmihailenco/msgpack/v4 v4.3.11 h1:Q47CePddpNGNhk4GCnAx9DDtASi2rasatE0cd26cZoE= diff --git a/main.go b/main.go index 9ec8fc2..f402942 100644 --- a/main.go +++ b/main.go @@ -38,6 +38,7 @@ func init() { if mode.Get() == mode.DevelopmentMode { godotenv.Load(".env.development") + logrus.SetLevel(logrus.DebugLevel) } customFormatter := new(logrus.TextFormatter)