update bot status, rename some types/functions

This commit is contained in:
Dawid Wysokiński 2021-01-13 20:03:50 +01:00
parent 16552f88fd
commit 44d56d931c
6 changed files with 49 additions and 54 deletions

View File

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

View File

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

View File

@ -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: "-",

View File

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

View File

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

View File

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