update bot status, rename some types/functions
This commit is contained in:
parent
16552f88fd
commit
44d56d931c
|
@ -76,7 +76,7 @@ func (h *handler) loadEnnoblements(servers []string) (map[string]ennoblements, e
|
|||
lastEnnoblementAt = time.Now().Add(-60 * time.Minute * 23)
|
||||
}
|
||||
|
||||
m[server] = filterEnnoblements(ennoblements, lastEnnoblementAt)
|
||||
m[server] = getRecentEnnoblements(ennoblements, lastEnnoblementAt)
|
||||
|
||||
lastEnnoblement := m[server].getLastEnnoblement()
|
||||
if lastEnnoblement != nil {
|
||||
|
@ -130,7 +130,7 @@ func (h *handler) checkEnnoblements() {
|
|||
}
|
||||
log.
|
||||
WithField("numberOfGroups", total).
|
||||
Info("checkEnnoblements: Loaded groups")
|
||||
Info("checkEnnoblements: loaded groups")
|
||||
|
||||
versions, err := h.loadVersions(servers)
|
||||
if err != nil {
|
||||
|
@ -139,13 +139,13 @@ func (h *handler) checkEnnoblements() {
|
|||
}
|
||||
log.
|
||||
WithField("numberOfVersions", len(versions)).
|
||||
Info("checkEnnoblements: Loaded versions")
|
||||
Info("checkEnnoblements: loaded versions")
|
||||
|
||||
ennoblementsByServerKey, err := h.loadEnnoblements(servers)
|
||||
if err != nil {
|
||||
log.Errorln("checkEnnoblements:", err)
|
||||
}
|
||||
log.Info("checkEnnoblements: Loaded ennoblements")
|
||||
log.Info("checkEnnoblements: loaded ennoblements")
|
||||
|
||||
for _, group := range groups {
|
||||
if group.ConqueredVillagesChannelID == "" && group.LostVillagesChannelID == "" {
|
||||
|
@ -197,6 +197,7 @@ func (h *handler) checkEnnoblements() {
|
|||
}
|
||||
}
|
||||
|
||||
timestamp := time.Now().Format(time.RFC3339)
|
||||
if group.ConqueredVillagesChannelID != "" && !conqueredVillagesMsg.IsEmpty() {
|
||||
title := localizer.MustLocalize(&i18n.LocalizeConfig{
|
||||
MessageID: message.CronConqueredVillagesTitle,
|
||||
|
@ -209,7 +210,7 @@ func (h *handler) checkEnnoblements() {
|
|||
SetTitle(title).
|
||||
SetColor(colorConqueredVillages).
|
||||
SetFields(conqueredVillagesMsg.ToMessageEmbedFields()).
|
||||
SetTimestamp(formatDateOfConquest(time.Now())).
|
||||
SetTimestamp(timestamp).
|
||||
MessageEmbed)
|
||||
}
|
||||
|
||||
|
@ -225,7 +226,7 @@ func (h *handler) checkEnnoblements() {
|
|||
SetTitle(title).
|
||||
SetColor(colorLostVillages).
|
||||
SetFields(lostVillagesMsg.ToMessageEmbedFields()).
|
||||
SetTimestamp(formatDateOfConquest(time.Now())).
|
||||
SetTimestamp(timestamp).
|
||||
MessageEmbed)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ import (
|
|||
shared_models "github.com/tribalwarshelp/shared/models"
|
||||
)
|
||||
|
||||
func filterEnnoblements(ennoblements []*shared_models.LiveEnnoblement, t time.Time) []*shared_models.LiveEnnoblement {
|
||||
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) {
|
||||
|
@ -18,10 +18,6 @@ func filterEnnoblements(ennoblements []*shared_models.LiveEnnoblement, t time.Ti
|
|||
return filtered
|
||||
}
|
||||
|
||||
func formatDateOfConquest(t time.Time) string {
|
||||
return t.Format(time.RFC3339)
|
||||
}
|
||||
|
||||
func isBarbarian(p *shared_models.Player) bool {
|
||||
return utils.IsPlayerNil(p) || p.ID == 0
|
||||
}
|
||||
|
|
|
@ -21,7 +21,6 @@ const (
|
|||
type checkEnnoblementsMsg struct {
|
||||
t messageType
|
||||
server string
|
||||
date string
|
||||
village string
|
||||
villageURL string
|
||||
oldOwnerName string
|
||||
|
@ -46,7 +45,6 @@ type newMessageConfig struct {
|
|||
func newMessage(cfg newMessageConfig) checkEnnoblementsMsg {
|
||||
data := checkEnnoblementsMsg{
|
||||
t: cfg.t,
|
||||
date: formatDateOfConquest(cfg.ennoblement.EnnobledAt),
|
||||
server: cfg.server,
|
||||
village: "-",
|
||||
oldOwnerName: "-",
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package discord
|
||||
|
||||
import (
|
||||
"github.com/bwmarrin/discordgo"
|
||||
"github.com/nicksnyder/go-i18n/v2/i18n"
|
||||
"github.com/tribalwarshelp/dcbot/models"
|
||||
)
|
||||
|
@ -19,3 +20,20 @@ type commandCtx struct {
|
|||
server *models.Server
|
||||
localizer *i18n.Localizer
|
||||
}
|
||||
|
||||
type commandHandler struct {
|
||||
cmd Command
|
||||
requireAdmPermissions bool
|
||||
fn func(ctx *commandCtx, m *discordgo.MessageCreate, args ...string)
|
||||
}
|
||||
|
||||
type commandHandlers []*commandHandler
|
||||
|
||||
func (hs commandHandlers) find(cmd Command) *commandHandler {
|
||||
for _, h := range hs {
|
||||
if h.cmd == cmd {
|
||||
return h
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -19,23 +19,6 @@ import (
|
|||
|
||||
var log = logrus.WithField("package", "discord")
|
||||
|
||||
type handler struct {
|
||||
cmd Command
|
||||
requireAdmPermissions bool
|
||||
fn func(ctx *commandCtx, m *discordgo.MessageCreate, args ...string)
|
||||
}
|
||||
|
||||
type handlers []*handler
|
||||
|
||||
func (hs handlers) find(cmd Command) *handler {
|
||||
for _, h := range hs {
|
||||
if h.cmd == cmd {
|
||||
return h
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type SessionConfig struct {
|
||||
Token string
|
||||
CommandPrefix string
|
||||
|
@ -49,7 +32,7 @@ type SessionConfig struct {
|
|||
type Session struct {
|
||||
dg *discordgo.Session
|
||||
cfg SessionConfig
|
||||
handlers handlers
|
||||
handlers commandHandlers
|
||||
}
|
||||
|
||||
func New(cfg SessionConfig) (*Session, error) {
|
||||
|
@ -68,90 +51,90 @@ func New(cfg SessionConfig) (*Session, error) {
|
|||
}
|
||||
|
||||
func (s *Session) init() error {
|
||||
s.handlers = handlers{
|
||||
&handler{
|
||||
s.handlers = commandHandlers{
|
||||
&commandHandler{
|
||||
cmd: HelpCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleHelpCommand,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: AuthorCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleAuthorCommand,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: TribeCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleTribeCommand,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: ChangeLanguageCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleChangeLanguageCommand,
|
||||
requireAdmPermissions: true,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: AddGroupCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleAddGroupCommand,
|
||||
requireAdmPermissions: true,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: DeleteGroupCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleDeleteGroupCommand,
|
||||
requireAdmPermissions: true,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: GroupsCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleGroupsCommand,
|
||||
requireAdmPermissions: true,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: ObserveCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleObserveCommand,
|
||||
requireAdmPermissions: true,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: DeleteObservationCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleDeleteObservationCommand,
|
||||
requireAdmPermissions: true,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: ObservationsCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleObservationsCommand,
|
||||
requireAdmPermissions: true,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: ConqueredVillagesCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleConqueredVillagesCommand,
|
||||
requireAdmPermissions: true,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: DisableConqueredVillagesCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleDisableConqueredVillagesCommand,
|
||||
requireAdmPermissions: true,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: LostVillagesCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleLostVillagesCommand,
|
||||
requireAdmPermissions: true,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: DisableLostVillagesCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleDisableLostVillagesCommand,
|
||||
requireAdmPermissions: true,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: ShowEnnobledBarbariansCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleShowEnnobledBarbariansCommand,
|
||||
requireAdmPermissions: true,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: ShowInternalsCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleShowInternalsCommand,
|
||||
requireAdmPermissions: true,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: CoordsTranslationCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleCoordsTranslationCommand,
|
||||
requireAdmPermissions: true,
|
||||
},
|
||||
&handler{
|
||||
&commandHandler{
|
||||
cmd: DisableCoordsTranslationCommand.WithPrefix(s.cfg.CommandPrefix),
|
||||
fn: s.handleDisableCoordsTranslationCommand,
|
||||
requireAdmPermissions: true,
|
||||
|
|
7
main.go
7
main.go
|
@ -31,7 +31,7 @@ const (
|
|||
commandPrefix = "tw!"
|
||||
)
|
||||
|
||||
var status = "Tribal Wars | " + discord.HelpCommand.WithPrefix(commandPrefix).String()
|
||||
var status = "tribalwarshelp.com | " + discord.HelpCommand.WithPrefix(commandPrefix).String()
|
||||
|
||||
func init() {
|
||||
os.Setenv("TZ", "UTC")
|
||||
|
@ -81,7 +81,6 @@ func main() {
|
|||
Verbose: true,
|
||||
})
|
||||
}
|
||||
logrus.WithFields(dbFields).Info("Connected to the database")
|
||||
|
||||
serverRepo, err := server_repository.NewPgRepo(db)
|
||||
if err != nil {
|
||||
|
@ -95,7 +94,7 @@ func main() {
|
|||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
logrus.Info("Loaded all repositories")
|
||||
logrus.WithFields(dbFields).Info("Connected to the database")
|
||||
|
||||
api := sdk.New(os.Getenv("API_URL"))
|
||||
|
||||
|
@ -133,7 +132,7 @@ func main() {
|
|||
defer c.Stop()
|
||||
logrus.Info("Started the cron scheduler")
|
||||
|
||||
logrus.Info("Bot is waiting for actions!")
|
||||
logrus.Info("Bot is running!")
|
||||
|
||||
channel := make(chan os.Signal, 1)
|
||||
signal.Notify(channel, os.Interrupt, os.Kill, syscall.SIGTERM, syscall.SIGINT)
|
||||
|
|
Reference in New Issue