replace the deprecated liveEnnoblements query with the ennoblements query

This commit is contained in:
Dawid Wysokiński 2021-01-15 19:32:36 +01:00
parent ad55e5c345
commit c3b06c71a9
7 changed files with 49 additions and 52 deletions

View File

@ -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

View File

@ -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

View File

@ -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
}

View File

@ -38,7 +38,7 @@ type newMessageConfig struct {
t messageType
host string
server string
ennoblement *shared_models.LiveEnnoblement
ennoblement *shared_models.Ennoblement
localizer *i18n.Localizer
}

4
go.mod
View File

@ -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
)

8
go.sum
View File

@ -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=

View File

@ -38,6 +38,7 @@ func init() {
if mode.Get() == mode.DevelopmentMode {
godotenv.Load(".env.development")
logrus.SetLevel(logrus.DebugLevel)
}
customFormatter := new(logrus.TextFormatter)