update github.com/tribalwarshelp/shared

This commit is contained in:
Dawid Wysokiński 2020-10-31 12:16:21 +01:00
parent 2e7c2eec67
commit 88aa66afdf
9 changed files with 39 additions and 58 deletions

View File

@ -5,7 +5,7 @@ import (
"fmt"
"time"
sharedutils "github.com/tribalwarshelp/shared/utils"
"github.com/tribalwarshelp/shared/tw"
"github.com/nicksnyder/go-i18n/v2/i18n"
"github.com/tribalwarshelp/dcbot/message"
@ -92,7 +92,7 @@ func (h *handler) loadLangVersions(servers []string) ([]*shared_models.LangVersi
languageTags := []shared_models.LanguageTag{}
cache := make(map[shared_models.LanguageTag]bool)
for _, server := range servers {
languageTag := sharedutils.LanguageTagFromServerKey(server)
languageTag := tw.LanguageTagFromServerKey(server)
if languageTag.IsValid() && !cache[languageTag] {
cache[languageTag] = true
languageTags = append(languageTags, languageTag)
@ -156,7 +156,7 @@ func (h *handler) checkEnnoblements() {
conqueredVillagesMsg := &discord.MessageEmbed{}
for _, observation := range group.Observations {
ennoblements, ok := ennoblementsByServerKey[observation.Server]
langVersion := utils.FindLangVersionByTag(langVersions, sharedutils.LanguageTagFromServerKey(observation.Server))
langVersion := utils.FindLangVersionByTag(langVersions, tw.LanguageTagFromServerKey(observation.Server))
if ok && langVersion != nil && langVersion.Host != "" {
if group.LostVillagesChannelID != "" {
for _, ennoblement := range ennoblements.getLostVillagesByTribe(observation.TribeID) {

View File

@ -6,6 +6,7 @@ import (
"github.com/tribalwarshelp/dcbot/message"
"github.com/tribalwarshelp/dcbot/utils"
shared_models "github.com/tribalwarshelp/shared/models"
"github.com/tribalwarshelp/shared/tw"
)
type messageType string
@ -56,23 +57,23 @@ func newMessage(cfg newMessageConfig) checkEnnoblementsMsg {
}
if !utils.IsVillageNil(cfg.ennoblement.Village) {
data.village = cfg.ennoblement.Village.FullName()
data.villageURL = utils.FormatVillageURL(cfg.server, cfg.host, cfg.ennoblement.Village.ID)
data.villageURL = tw.BuildVillageURL(cfg.server, cfg.host, cfg.ennoblement.Village.ID)
}
if !utils.IsPlayerNil(cfg.ennoblement.OldOwner) {
data.oldOwnerName = cfg.ennoblement.OldOwner.Name
data.oldOwnerURL = utils.FormatPlayerURL(cfg.server, cfg.host, cfg.ennoblement.OldOwner.ID)
data.oldOwnerURL = tw.BuildPlayerURL(cfg.server, cfg.host, cfg.ennoblement.OldOwner.ID)
}
if !utils.IsPlayerTribeNil(cfg.ennoblement.OldOwner) {
data.oldOwnerTribeTag = cfg.ennoblement.OldOwner.Tribe.Tag
data.oldOwnerTribeURL = utils.FormatTribeURL(cfg.server, cfg.host, cfg.ennoblement.OldOwner.Tribe.ID)
data.oldOwnerTribeURL = tw.BuildTribeURL(cfg.server, cfg.host, cfg.ennoblement.OldOwner.Tribe.ID)
}
if !utils.IsPlayerNil(cfg.ennoblement.NewOwner) {
data.newOwnerName = cfg.ennoblement.NewOwner.Name
data.newOwnerURL = utils.FormatPlayerURL(cfg.server, cfg.host, cfg.ennoblement.NewOwner.ID)
data.newOwnerURL = tw.BuildPlayerURL(cfg.server, cfg.host, cfg.ennoblement.NewOwner.ID)
}
if !utils.IsPlayerTribeNil(cfg.ennoblement.NewOwner) {
data.newOwnerTribeTag = cfg.ennoblement.NewOwner.Tribe.Tag
data.newOwnerTribeURL = utils.FormatTribeURL(cfg.server, cfg.host, cfg.ennoblement.NewOwner.Tribe.ID)
data.newOwnerTribeURL = tw.BuildTribeURL(cfg.server, cfg.host, cfg.ennoblement.NewOwner.Tribe.ID)
}
return data
@ -84,11 +85,11 @@ func (msg checkEnnoblementsMsg) String() string {
DefaultMessage: message.FallbackMsg(message.CronCheckEnnoblementsMsgLine,
"{{.NewOwner}} ({{.NewOwnerTribe}}) has conquered {{.Village}} (Old owner: {{.OldOwner}} ({{.OldOwnerTribe}}))"),
TemplateData: map[string]interface{}{
"NewOwner": discord.FormatLink(msg.newOwnerName, msg.newOwnerURL),
"NewOwnerTribe": discord.FormatLink(msg.newOwnerTribeTag, msg.newOwnerTribeURL),
"Village": discord.FormatLink(msg.village, msg.villageURL),
"OldOwner": discord.FormatLink(msg.oldOwnerName, msg.oldOwnerURL),
"OldOwnerTribe": discord.FormatLink(msg.oldOwnerTribeTag, msg.oldOwnerTribeURL),
"NewOwner": discord.BuildLink(msg.newOwnerName, msg.newOwnerURL),
"NewOwnerTribe": discord.BuildLink(msg.newOwnerTribeTag, msg.newOwnerTribeURL),
"Village": discord.BuildLink(msg.village, msg.villageURL),
"OldOwner": discord.BuildLink(msg.oldOwnerName, msg.oldOwnerURL),
"OldOwnerTribe": discord.BuildLink(msg.oldOwnerTribeTag, msg.oldOwnerTribeURL),
},
}) + "\n"
}

View File

@ -4,14 +4,13 @@ import (
"context"
"regexp"
sharedutils "github.com/tribalwarshelp/shared/utils"
"github.com/bwmarrin/discordgo"
"github.com/nicksnyder/go-i18n/v2/i18n"
"github.com/tribalwarshelp/dcbot/message"
"github.com/tribalwarshelp/dcbot/utils"
"github.com/tribalwarshelp/golang-sdk/sdk"
"github.com/tribalwarshelp/shared/models"
"github.com/tribalwarshelp/shared/tw"
)
const (
@ -87,7 +86,7 @@ func (s *Session) translateCoords(ctx *commandCtx, m *discordgo.MessageCreate) {
coords := extractAllCoordsFromMessage(m.Content)
coordsLen := len(coords)
if coordsLen > 0 {
langVersion, err := s.cfg.API.LangVersions.Read(sharedutils.LanguageTagFromServerKey(ctx.server.CoordsTranslation))
langVersion, err := s.cfg.API.LangVersions.Read(tw.LanguageTagFromServerKey(ctx.server.CoordsTranslation))
if err != nil || langVersion == nil {
return
}
@ -110,18 +109,18 @@ func (s *Session) translateCoords(ctx *commandCtx, m *discordgo.MessageCreate) {
msg := &MessageEmbed{}
for _, village := range list.Items {
villageURL := utils.FormatVillageURL(ctx.server.CoordsTranslation, langVersion.Host, village.ID)
villageURL := tw.BuildVillageURL(ctx.server.CoordsTranslation, langVersion.Host, village.ID)
playerName := "-"
playerURL := ""
if !utils.IsPlayerNil(village.Player) {
playerName = village.Player.Name
playerURL = utils.FormatPlayerURL(ctx.server.CoordsTranslation, langVersion.Host, village.Player.ID)
playerURL = tw.BuildPlayerURL(ctx.server.CoordsTranslation, langVersion.Host, village.Player.ID)
}
tribeName := "-"
tribeURL := ""
if !utils.IsPlayerTribeNil(village.Player) {
tribeName = village.Player.Tribe.Name
tribeURL = utils.FormatTribeURL(ctx.server.CoordsTranslation, langVersion.Host, village.Player.Tribe.ID)
tribeURL = tw.BuildTribeURL(ctx.server.CoordsTranslation, langVersion.Host, village.Player.Tribe.ID)
}
msg.Append(ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
@ -129,9 +128,9 @@ func (s *Session) translateCoords(ctx *commandCtx, m *discordgo.MessageCreate) {
DefaultMessage: message.FallbackMsg(message.CoordsTranslationMessage,
"{{.Village}} owned by {{.Player}} (Tribe: {{.Tribe}})."),
TemplateData: map[string]interface{}{
"Village": FormatLink(village.FullName(), villageURL),
"Player": FormatLink(playerName, playerURL),
"Tribe": FormatLink(tribeName, tribeURL),
"Village": BuildLink(village.FullName(), villageURL),
"Player": BuildLink(playerName, playerURL),
"Tribe": BuildLink(tribeName, tribeURL),
},
}) + "\n")
}

View File

@ -33,7 +33,7 @@ func isValidLanguageTag(lang string) bool {
return valid
}
func FormatLink(text string, url string) string {
func BuildLink(text string, url string) string {
if url == "" {
return text
}

View File

@ -5,7 +5,7 @@ import (
"fmt"
"strconv"
sharedutils "github.com/tribalwarshelp/shared/utils"
"github.com/tribalwarshelp/shared/tw"
"github.com/bwmarrin/discordgo"
"github.com/nicksnyder/go-i18n/v2/i18n"
@ -688,7 +688,7 @@ func (s *Session) handleObservationsCommand(ctx *commandCtx, m *discordgo.Messag
langTags := []shared_models.LanguageTag{}
for _, observation := range observations {
tribeIDsByServer[observation.Server] = append(tribeIDsByServer[observation.Server], observation.TribeID)
currentLangTag := sharedutils.LanguageTagFromServerKey(observation.Server)
currentLangTag := tw.LanguageTagFromServerKey(observation.Server)
unique := true
for _, langTag := range langTags {
if langTag == currentLangTag {
@ -738,10 +738,10 @@ func (s *Session) handleObservationsCommand(ctx *commandCtx, m *discordgo.Messag
if observation.Tribe != nil {
tag = observation.Tribe.Tag
}
lv := utils.FindLangVersionByTag(langVersionList.Items, sharedutils.LanguageTagFromServerKey(observation.Server))
lv := utils.FindLangVersionByTag(langVersionList.Items, tw.LanguageTagFromServerKey(observation.Server))
tribeURL := ""
if lv != nil {
tribeURL = utils.FormatTribeURL(observation.Server, lv.Host, observation.TribeID)
tribeURL = tw.BuildTribeURL(observation.Server, lv.Host, observation.TribeID)
}
msg.Append(fmt.Sprintf("**%d** | %d - %s - [``%s``](%s)\n", i+1, observation.ID,
observation.Server,

View File

@ -9,11 +9,10 @@ import (
"github.com/nicksnyder/go-i18n/v2/i18n"
shared_models "github.com/tribalwarshelp/shared/models"
"github.com/tribalwarshelp/shared/tw"
"github.com/bwmarrin/discordgo"
"github.com/tribalwarshelp/dcbot/utils"
"github.com/tribalwarshelp/golang-sdk/sdk"
sharedutils "github.com/tribalwarshelp/shared/utils"
)
const (
@ -41,7 +40,7 @@ func (s *Session) handleHelpCommand(ctx *commandCtx, m *discordgo.MessageCreate,
DefaultMessage: message.FallbackMsg(message.HelpTribeTopODA,
"**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by ODA."),
TemplateData: map[string]interface{}{
"Command": TribeCommand + " " + TopODACommand,
"Command": TribeCommand.WithPrefix(s.cfg.CommandPrefix) + " " + TopODACommand,
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
@ -49,7 +48,7 @@ func (s *Session) handleHelpCommand(ctx *commandCtx, m *discordgo.MessageCreate,
DefaultMessage: message.FallbackMsg(message.HelpTribeTopODD,
"**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by ODD."),
TemplateData: map[string]interface{}{
"Command": TribeCommand + " " + TopODDCommand,
"Command": TribeCommand.WithPrefix(s.cfg.CommandPrefix) + " " + TopODDCommand,
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
@ -57,7 +56,7 @@ func (s *Session) handleHelpCommand(ctx *commandCtx, m *discordgo.MessageCreate,
DefaultMessage: message.FallbackMsg(message.HelpTribeTopODS,
"**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by ODS."),
TemplateData: map[string]interface{}{
"Command": TribeCommand + " " + TopODSCommand,
"Command": TribeCommand.WithPrefix(s.cfg.CommandPrefix) + " " + TopODSCommand,
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
@ -65,7 +64,7 @@ func (s *Session) handleHelpCommand(ctx *commandCtx, m *discordgo.MessageCreate,
DefaultMessage: message.FallbackMsg(message.HelpTribeTopOD,
"**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by OD."),
TemplateData: map[string]interface{}{
"Command": TribeCommand + " " + TopODCommand,
"Command": TribeCommand.WithPrefix(s.cfg.CommandPrefix) + " " + TopODCommand,
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
@ -73,7 +72,7 @@ func (s *Session) handleHelpCommand(ctx *commandCtx, m *discordgo.MessageCreate,
DefaultMessage: message.FallbackMsg(message.HelpTribeTopPoints,
"**{{.Command}}** [server] [page] [id1] [id2] [id3] [n id] - generates a player list from selected tribes ordered by points."),
TemplateData: map[string]interface{}{
"Command": TribeCommand + " " + TopPointsCommand,
"Command": TribeCommand.WithPrefix(s.cfg.CommandPrefix) + " " + TopPointsCommand,
},
}),
ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
@ -398,7 +397,7 @@ func (s *Session) handleTribeCommand(ctx *commandCtx, m *discordgo.MessageCreate
return
}
langTag := sharedutils.LanguageTagFromServerKey(world)
langTag := tw.LanguageTagFromServerKey(world)
langVersion, err := s.cfg.API.LangVersions.Read(langTag)
if err != nil || langVersion == nil {
s.SendMessage(m.ChannelID, ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
@ -442,7 +441,7 @@ func (s *Session) handleTribeCommand(ctx *commandCtx, m *discordgo.MessageCreate
tribeURL := "-"
if player.Tribe != nil {
tribeTag = player.Tribe.Tag
tribeURL = utils.FormatTribeURL(world, langVersion.Host, player.Tribe.ID)
tribeURL = tw.BuildTribeURL(world, langVersion.Host, player.Tribe.ID)
}
msg.Append(ctx.localizer.MustLocalize(&i18n.LocalizeConfig{
@ -452,7 +451,7 @@ func (s *Session) handleTribeCommand(ctx *commandCtx, m *discordgo.MessageCreate
TemplateData: map[string]interface{}{
"Index": offset + i + 1,
"PlayerName": player.Name,
"PlayerURL": utils.FormatPlayerURL(world, langVersion.Host, player.ID),
"PlayerURL": tw.BuildPlayerURL(world, langVersion.Host, player.ID),
"TribeTag": tribeTag,
"TribeURL": tribeURL,
"Rank": rank,

2
go.mod
View File

@ -12,7 +12,7 @@ require (
github.com/robfig/cron/v3 v3.0.1
github.com/sirupsen/logrus v1.7.0
github.com/tribalwarshelp/golang-sdk v0.0.0-20200903125555-7b6975e64f6f
github.com/tribalwarshelp/shared v0.0.0-20201024182030-eeb4645da4ca
github.com/tribalwarshelp/shared v0.0.0-20201031105753-5d4d8b307747
golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897 // indirect
golang.org/x/net v0.0.0-20201016165138-7b1cca2348c0 // indirect
golang.org/x/sys v0.0.0-20201022201747-fb209a7c41cd // indirect

2
go.sum
View File

@ -132,6 +132,8 @@ github.com/tribalwarshelp/shared v0.0.0-20200809125423-2bc2e8dfde95 h1:mO3ZR+o5U
github.com/tribalwarshelp/shared v0.0.0-20200809125423-2bc2e8dfde95/go.mod h1:SSWchTkQdgeIDr0C68C7zopEIcBLCUa8Ic2CHenUaac=
github.com/tribalwarshelp/shared v0.0.0-20201024182030-eeb4645da4ca h1:YUm2O7+N75k3Oyu7GKqyxW6G1TmThh2N0LdbkZN67ZU=
github.com/tribalwarshelp/shared v0.0.0-20201024182030-eeb4645da4ca/go.mod h1:EsUl4FRcNDPvJg7ig3t0pEHOPxZnw5SXKYbxaI0IQJU=
github.com/tribalwarshelp/shared v0.0.0-20201031105753-5d4d8b307747 h1:ef1VuyVNNxa6ALTPS5X8dPEsAI7KuA3/umNNkrI4fIk=
github.com/tribalwarshelp/shared v0.0.0-20201031105753-5d4d8b307747/go.mod h1:Lxk6zaQhPTPrgz9ksMgg51m8XgflrCo/kRBx2cM3yfk=
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

@ -1,29 +1,9 @@
package utils
import (
"fmt"
"github.com/tribalwarshelp/shared/models"
)
const (
endpointTribeProfile = "/game.php?screen=info_ally&id=%d"
endpointPlayerProfile = "/game.php?screen=info_player&id=%d"
endpointVillageProfile = "/game.php?screen=info_village&id=%d"
)
func FormatVillageURL(world, host string, id int) string {
return fmt.Sprintf("https://%s.%s"+endpointVillageProfile, world, host, id)
}
func FormatTribeURL(world, host string, id int) string {
return fmt.Sprintf("https://%s.%s"+endpointTribeProfile, world, host, id)
}
func FormatPlayerURL(world, host string, id int) string {
return fmt.Sprintf("https://%s.%s"+endpointPlayerProfile, world, host, id)
}
func IsPlayerNil(player *models.Player) bool {
return player == nil
}