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