From 01808ccaa19f24e7e6b9d0748b7d0355ba3efbdf Mon Sep 17 00:00:00 2001 From: Anatole Date: Tue, 30 Aug 2022 17:27:18 +0200 Subject: [PATCH 1/5] Commands & Interactions --- cmd/main.go | 3 + go.mod | 2 +- go.sum | 6 +- internal/api/api.go | 6 +- internal/api/commands/handler.go | 1 - internal/api/operations/handler.go | 1 + .../{commands => operations}/post_message.go | 2 +- .../api/{commands => operations}/sync_user.go | 6 +- internal/commands/commands.go | 60 ++++++++ internal/commands/user_info.cmd.go | 139 ++++++++++++++++++ internal/discord/discord.go | 2 +- internal/handler/handler.go | 8 +- 12 files changed, 221 insertions(+), 15 deletions(-) delete mode 100644 internal/api/commands/handler.go create mode 100644 internal/api/operations/handler.go rename internal/api/{commands => operations}/post_message.go (98%) rename internal/api/{commands => operations}/sync_user.go (95%) create mode 100644 internal/commands/commands.go create mode 100644 internal/commands/user_info.cmd.go diff --git a/cmd/main.go b/cmd/main.go index e03d82f..ae594e7 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -15,6 +15,7 @@ import ( "github.com/seventv/common/redis" "github.com/seventv/common/structures/v3/query" "github.com/seventv/compactdisc/internal/api" + "github.com/seventv/compactdisc/internal/commands" "github.com/seventv/compactdisc/internal/configure" "github.com/seventv/compactdisc/internal/discord" "github.com/seventv/compactdisc/internal/global" @@ -110,6 +111,8 @@ func main() { } handler.Register(gctx, gctx.Inst().Discord.Session()) + commands.Setup(gctx) + zap.S().Infow("discord, ok") } diff --git a/go.mod b/go.mod index 1994de7..97b95d5 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( github.com/bugsnag/panicwrap v1.3.4 - github.com/bwmarrin/discordgo v0.25.0 + github.com/bwmarrin/discordgo v0.26.1 github.com/prometheus/client_golang v1.12.2 github.com/seventv/common v0.0.0-20220723113936-4f27199129f8 github.com/spf13/pflag v1.0.5 diff --git a/go.sum b/go.sum index a05a589..f1c2a5c 100644 --- a/go.sum +++ b/go.sum @@ -53,8 +53,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bugsnag/panicwrap v1.3.4 h1:A6sXFtDGsgU/4BLf5JT0o5uYg3EeKgGx3Sfs+/uk3pU= github.com/bugsnag/panicwrap v1.3.4/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= -github.com/bwmarrin/discordgo v0.25.0 h1:NXhdfHRNxtwso6FPdzW2i3uBvvU7UIQTghmV2T4nqAs= -github.com/bwmarrin/discordgo v0.25.0/go.mod h1:NJZpH+1AfhIcyQsPeuBKsUtYrRnjkyu0kIVMCHkZtRY= +github.com/bwmarrin/discordgo v0.26.1 h1:AIrM+g3cl+iYBr4yBxCBp9tD9jR3K7upEjl0d89FRkE= +github.com/bwmarrin/discordgo v0.26.1/go.mod h1:NJZpH+1AfhIcyQsPeuBKsUtYrRnjkyu0kIVMCHkZtRY= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= @@ -280,8 +280,6 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d h1:Q+gqLBOPkFGHyCJxXMRqtUgUbTjI8/Ze8vu8GGyNFwo= github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d/go.mod h1:Gy+0tqhJvgGlqnTF8CVGP0AaGRjwBtXs/a5PA0Y3+A4= -github.com/seventv/common v0.0.0-20220720073440-87800b448acd h1:mDpCAXTPTRlMjY4nds8Weear1ANG38SpnZQVSNqDNY4= -github.com/seventv/common v0.0.0-20220720073440-87800b448acd/go.mod h1:tOdDjP4U7Z5jXqCpyWP7oDnyMaH2/Hddlx2OAw+jM/I= github.com/seventv/common v0.0.0-20220723113936-4f27199129f8 h1:lpB0AszlSI2IOc9igG5CvQMf/akVPembBbg0gsO0nQI= github.com/seventv/common v0.0.0-20220723113936-4f27199129f8/go.mod h1:++S6KoMQtZ4OIZmcDbN26W2/I6JrNP/T/5a+/oLSpM8= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= diff --git a/internal/api/api.go b/internal/api/api.go index af37d81..6596837 100644 --- a/internal/api/api.go +++ b/internal/api/api.go @@ -9,7 +9,7 @@ import ( "github.com/fasthttp/router" "github.com/seventv/common/utils" "github.com/seventv/compactdisc" - "github.com/seventv/compactdisc/internal/api/commands" + "github.com/seventv/compactdisc/internal/api/operations" "github.com/seventv/compactdisc/internal/global" "github.com/valyala/fasthttp" "go.uber.org/zap" @@ -44,9 +44,9 @@ func Start(gctx global.Context) (<-chan uint8, error) { switch body.Operation { case compactdisc.OperationNameSyncUser: - err = commands.SyncUser(gctx, ctx, compactdisc.ConvertRequest[compactdisc.RequestPayloadSyncUser](body)) + err = operations.SyncUser(gctx, ctx, compactdisc.ConvertRequest[compactdisc.RequestPayloadSyncUser](body)) case compactdisc.OperationNameSendMessage: - err = commands.SendMessage(gctx, ctx, compactdisc.ConvertRequest[compactdisc.RequestPayloadSendMessage](body)) + err = operations.SendMessage(gctx, ctx, compactdisc.ConvertRequest[compactdisc.RequestPayloadSendMessage](body)) } if err != nil { diff --git a/internal/api/commands/handler.go b/internal/api/commands/handler.go deleted file mode 100644 index cdff10d..0000000 --- a/internal/api/commands/handler.go +++ /dev/null @@ -1 +0,0 @@ -package commands diff --git a/internal/api/operations/handler.go b/internal/api/operations/handler.go new file mode 100644 index 0000000..19c01a9 --- /dev/null +++ b/internal/api/operations/handler.go @@ -0,0 +1 @@ +package operations diff --git a/internal/api/commands/post_message.go b/internal/api/operations/post_message.go similarity index 98% rename from internal/api/commands/post_message.go rename to internal/api/operations/post_message.go index f099cdc..aee0ca6 100644 --- a/internal/api/commands/post_message.go +++ b/internal/api/operations/post_message.go @@ -1,4 +1,4 @@ -package commands +package operations import ( "context" diff --git a/internal/api/commands/sync_user.go b/internal/api/operations/sync_user.go similarity index 95% rename from internal/api/commands/sync_user.go rename to internal/api/operations/sync_user.go index f432cc4..53304bb 100644 --- a/internal/api/commands/sync_user.go +++ b/internal/api/operations/sync_user.go @@ -1,4 +1,4 @@ -package commands +package operations import ( "context" @@ -126,7 +126,9 @@ func SyncUser(gctx global.Context, ctx context.Context, req compactdisc.Request[ return nil } - if err := dis.GuildMemberEdit(gctx.Config().Discord.GuildID, member.User.ID, finalRoles); err != nil { + if _, err := dis.GuildMemberEdit(gctx.Config().Discord.GuildID, member.User.ID, &discordgo.GuildMemberParams{ + Roles: &finalRoles, + }); err != nil { z.Errorw("failed to update discord roles") return err } diff --git a/internal/commands/commands.go b/internal/commands/commands.go new file mode 100644 index 0000000..a0f5743 --- /dev/null +++ b/internal/commands/commands.go @@ -0,0 +1,60 @@ +package commands + +import ( + "github.com/bwmarrin/discordgo" + "github.com/seventv/compactdisc/internal/global" + "go.uber.org/zap" +) + +type Command struct { + Data *discordgo.ApplicationCommand + Handler CommandHandler +} + +func DefineCommand(data *discordgo.ApplicationCommand, handler CommandHandler) *Command { + return &Command{ + Data: data, + Handler: handler, + } +} + +type CommandHandler func(session *discordgo.Session, interaction *discordgo.InteractionCreate) error + +func Setup(gctx global.Context) error { + disc := gctx.Inst().Discord.Session() + appID := gctx.Inst().Discord.Identity().ID + guildID := gctx.Config().Discord.GuildID + + registeredCommands, _ := disc.ApplicationCommands(appID, guildID) + for _, cmd := range registeredCommands { + disc.ApplicationCommandDelete(appID, guildID, cmd.ID) + } + + commands := []*Command{ + UserInfo(gctx, appID, guildID), + } + + for _, cmd := range commands { + _, err := disc.ApplicationCommandCreate(appID, gctx.Config().Discord.GuildID, cmd.Data) + if err != nil { + zap.S().Errorw("failed to setup commands", "error", err) + } + + disc.AddHandler(func(s *discordgo.Session, i *discordgo.InteractionCreate) { + if err := cmd.Handler(s, i); err != nil { + zap.S().Errorw("failed to handle command", "command", cmd.Data.Name, "error", err) + + s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{ + Type: discordgo.InteractionResponseChannelMessageWithSource, + Data: &discordgo.InteractionResponseData{ + Content: err.Error(), + AllowedMentions: &discordgo.MessageAllowedMentions{}, + Flags: discordgo.MessageFlagsEphemeral, + }, + }) + } + }) + } + + return nil +} diff --git a/internal/commands/user_info.cmd.go b/internal/commands/user_info.cmd.go new file mode 100644 index 0000000..fe7436a --- /dev/null +++ b/internal/commands/user_info.cmd.go @@ -0,0 +1,139 @@ +package commands + +import ( + "fmt" + "strings" + "time" + + "github.com/bwmarrin/discordgo" + "github.com/seventv/common/structures/v3" + "github.com/seventv/common/utils" + "github.com/seventv/compactdisc/internal/global" + "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/bson/primitive" +) + +// UserInfo retrieves information about a 7TV user via their Discord connection +func UserInfo(gctx global.Context, appID string, guildID string) *Command { + return DefineCommand( + &discordgo.ApplicationCommand{ + ID: appID, + ApplicationID: appID, + GuildID: guildID, + Type: discordgo.UserApplicationCommand, + Name: "User Info", + DefaultMemberPermissions: utils.PointerOf(int64(discordgo.PermissionManageRoles)), + DescriptionLocalizations: &map[discordgo.Locale]string{}, + }, + func(session *discordgo.Session, interaction *discordgo.InteractionCreate) error { + data := interaction.ApplicationCommandData() + userID := data.TargetID + + // Fetch the user + user, err := gctx.Inst().Query.Users(gctx, bson.M{ + "connections": bson.M{"$elemMatch": bson.M{ + "platform": structures.UserConnectionPlatformDiscord, + "id": userID, + }}, + }).First() + if err != nil { + return err + } + + avatarURL := "" + if user.AvatarID != "" { + avatarURL = fmt.Sprintf("https://%s/pp/%s/%s", gctx.Config().CdnURL, user.ID.Hex(), user.AvatarID) + } else { + for _, con := range user.Connections { + if con.Platform == structures.UserConnectionPlatformTwitch { + if con, err := structures.ConvertUserConnection[structures.UserConnectionDataTwitch](con); err == nil { + avatarURL = con.Data.ProfileImageURL + } + } else if con.Platform == structures.UserConnectionPlatformDiscord { + if con, err := structures.ConvertUserConnection[structures.UserConnectionDataDiscord](con); err == nil { + avatarURL = fmt.Sprintf("https://cdn.discordapp.com/avatars/%s/%s.png", con.Data.ID, con.Data.Avatar) + } + } + } + } + + // Format an embed + fmt.Println(avatarURL) + embed := &discordgo.MessageEmbed{ + Type: discordgo.EmbedTypeRich, + Title: fmt.Sprintf("%s (%s)", user.DisplayName, user.Username), + URL: user.WebURL(gctx.Config().WebsiteURL), + Description: user.Biography, + Author: &discordgo.MessageEmbedAuthor{ + URL: user.WebURL(gctx.Config().WebsiteURL), + Name: user.DisplayName, + IconURL: avatarURL, + }, + Timestamp: user.ID.Timestamp().Format(time.RFC3339), + Color: int(user.GetHighestRole().Color), + Fields: func() []*discordgo.MessageEmbedField { + fields := make([]*discordgo.MessageEmbedField, 0) + + // Add the user's connections + for _, con := range user.Connections { + fields = append(fields, &discordgo.MessageEmbedField{ + Name: string(con.Platform), + Value: con.ID, + Inline: true, + }) + } + + // Add the user's roles + fields = append(fields, &discordgo.MessageEmbedField{ + Name: "Roles", + Value: func() string { + roleList := make([]string, len(user.Roles)) + for i, role := range user.Roles { + roleList[i] = role.Name + } + + return strings.Join(roleList, "\n") + }(), + Inline: false, + }) + + editorIDs := make([]primitive.ObjectID, len(user.Editors)) + for i, editor := range user.Editors { + editorIDs[i] = editor.ID + } + + editors, err := gctx.Inst().Query.Users(gctx, bson.M{"_id": bson.M{"$in": editorIDs}}).Items() + + if err == nil { + fields = append(fields, &discordgo.MessageEmbedField{ + Name: "Editors", + Value: func() string { + editorList := make([]string, len(user.Editors)) + for i, u := range editors { + editorList[i] = fmt.Sprintf("[%s (%s)](%s)", u.DisplayName, u.Username, u.WebURL(gctx.Config().WebsiteURL)) + } + + if len(editorList) == 0 { + return "None" + } + + return strings.Join(editorList, "\n") + }(), + Inline: false, + }) + } + + return fields + }(), + } + + return session.InteractionRespond(interaction.Interaction, &discordgo.InteractionResponse{ + Type: discordgo.InteractionResponseChannelMessageWithSource, + Data: &discordgo.InteractionResponseData{ + Content: fmt.Sprintf("**[user]** [%s (%s)](%s)", user.DisplayName, user.Username, user.WebURL(gctx.Config().WebsiteURL)), + Embeds: []*discordgo.MessageEmbed{embed}, + }, + }) + }, + ) +} diff --git a/internal/discord/discord.go b/internal/discord/discord.go index 72bc3dc..ead0e2b 100644 --- a/internal/discord/discord.go +++ b/internal/discord/discord.go @@ -23,7 +23,7 @@ func New(ctx context.Context, token string) (Instance, error) { } // Open connection to discord gateway - ses.Identify.Intents = discordgo.MakeIntent(ses.Identify.Intents | discordgo.IntentsGuildMembers | discordgo.IntentDirectMessages) + ses.Identify.Intents = discordgo.MakeIntent(ses.Identify.Intents | discordgo.IntentsMessageContent | discordgo.IntentsGuildMembers | discordgo.IntentDirectMessages) if err := ses.Open(); err != nil { return nil, err } diff --git a/internal/handler/handler.go b/internal/handler/handler.go index 91050cd..9cfcb0d 100644 --- a/internal/handler/handler.go +++ b/internal/handler/handler.go @@ -27,7 +27,9 @@ func messageCreate(gctx global.Context) func(s *discordgo.Session, m *discordgo. if !utils.Contains(m.Member.Roles, gctx.Config().Discord.DefaultRoleId) { finalRoles := append(m.Member.Roles, gctx.Config().Discord.DefaultRoleId) - if err := s.GuildMemberEdit(m.GuildID, m.Author.ID, finalRoles); err != nil { + if _, err := s.GuildMemberEdit(m.GuildID, m.Author.ID, &discordgo.GuildMemberParams{ + Roles: &finalRoles, + }); err != nil { zap.S().Errorw("failed to add default role to user", "error", err) } } @@ -39,7 +41,9 @@ func guildMemberAdd(gctx global.Context) func(s *discordgo.Session, m *discordgo return func(s *discordgo.Session, m *discordgo.GuildMemberAdd) { finalRoles := append(m.Roles, gctx.Config().Discord.DefaultRoleId) - if err := s.GuildMemberEdit(m.GuildID, m.User.ID, finalRoles); err != nil { + if _, err := s.GuildMemberEdit(m.GuildID, m.User.ID, &discordgo.GuildMemberParams{ + Roles: &finalRoles, + }); err != nil { zap.S().Errorw("failed to add default role to user", "error", err) } } From 573455d3f5b35ba00b80dd798ad775349d3ee2b3 Mon Sep 17 00:00:00 2001 From: Anatole Date: Tue, 30 Aug 2022 19:26:27 +0200 Subject: [PATCH 2/5] deleted message tracking --- internal/discord/discord.go | 2 +- internal/handler/handler.go | 100 ++++++++++++++++++++++++++++++------ 2 files changed, 86 insertions(+), 16 deletions(-) diff --git a/internal/discord/discord.go b/internal/discord/discord.go index ead0e2b..01ed6b4 100644 --- a/internal/discord/discord.go +++ b/internal/discord/discord.go @@ -23,7 +23,7 @@ func New(ctx context.Context, token string) (Instance, error) { } // Open connection to discord gateway - ses.Identify.Intents = discordgo.MakeIntent(ses.Identify.Intents | discordgo.IntentsMessageContent | discordgo.IntentsGuildMembers | discordgo.IntentDirectMessages) + ses.Identify.Intents = discordgo.MakeIntent(ses.Identify.Intents | discordgo.IntentMessageContent | discordgo.IntentsGuildMembers | discordgo.IntentDirectMessages) if err := ses.Open(); err != nil { return nil, err } diff --git a/internal/handler/handler.go b/internal/handler/handler.go index 9cfcb0d..b99974d 100644 --- a/internal/handler/handler.go +++ b/internal/handler/handler.go @@ -1,6 +1,11 @@ package handler import ( + "encoding/json" + "fmt" + "strings" + "time" + "github.com/bwmarrin/discordgo" "github.com/seventv/common/utils" "github.com/seventv/compactdisc/internal/global" @@ -8,23 +13,28 @@ import ( ) func Register(gctx global.Context, session *discordgo.Session) { - if gctx.Config().Discord.DefaultRoleId != "" { - session.AddHandler(messageCreate(gctx)) - session.AddHandler(guildMemberAdd(gctx)) - } else { - zap.S().Warnw("default role id not set") - } + session.AddHandler(messageCreate(gctx)) + session.AddHandler(messageDelete(gctx)) + session.AddHandler(guildMemberAdd(gctx)) } -// gives the user the default role if they dont already have it -// this is for users already in the guild who do not yet have it +// messageCreate is a handler for messages func messageCreate(gctx global.Context) func(s *discordgo.Session, m *discordgo.MessageCreate) { return func(s *discordgo.Session, m *discordgo.MessageCreate) { if m.Member == nil { return } - if !utils.Contains(m.Member.Roles, gctx.Config().Discord.DefaultRoleId) { + // Store the message in cache for 24h + key := gctx.Inst().Redis.ComposeKey("compactdisc", "cache", "message", m.ID) + + j, _ := json.Marshal(m.Message) + if err := gctx.Inst().Redis.SetEX(gctx, key, utils.B2S(j), time.Hour*72); err != nil { + zap.S().Errorw("failed to store message in cache", "error", err) + } + + // Assign default role if user does not have it + if gctx.Config().Discord.DefaultRoleId != "" && !utils.Contains(m.Member.Roles, gctx.Config().Discord.DefaultRoleId) { finalRoles := append(m.Member.Roles, gctx.Config().Discord.DefaultRoleId) if _, err := s.GuildMemberEdit(m.GuildID, m.Author.ID, &discordgo.GuildMemberParams{ @@ -36,15 +46,75 @@ func messageCreate(gctx global.Context) func(s *discordgo.Session, m *discordgo. } } -// gives the user the default role on join +func messageDelete(gctx global.Context) func(s *discordgo.Session, m *discordgo.MessageDelete) { + return func(s *discordgo.Session, m *discordgo.MessageDelete) { + key := gctx.Inst().Redis.ComposeKey("compactdisc", "cache", "message", m.ID) + + data, err := gctx.Inst().Redis.Get(gctx, key) + if err != nil { + zap.S().Errorw("failed to get message from cache", "error", err) + return + } + + var msg *discordgo.Message + if err := json.Unmarshal([]byte(data), &msg); err != nil { + zap.S().Errorw("failed to unmarshal message from cache", "error", err) + + return + } + + // Create an embed of the deleted message + fields := []*discordgo.MessageEmbedField{} + if msg.Content != "" { + fields = append(fields, &discordgo.MessageEmbedField{ + Name: "Content", + Value: msg.Content, + }) + } + + if len(msg.Attachments) > 0 { + fields = append(fields, &discordgo.MessageEmbedField{ + Name: "Attachments", + Value: func() string { + a := make([]string, len(msg.Attachments)) + for i, v := range msg.Attachments { + a[i] = v.URL + } + + return strings.Join(a, "\n") + }(), + }) + } + + embed := &discordgo.MessageEmbed{ + Author: &discordgo.MessageEmbedAuthor{ + Name: msg.Author.Username, + IconURL: msg.Author.AvatarURL("128"), + }, + Description: fmt.Sprintf("❌ **Message by %s deleted in <#%s>**\n", msg.Author.Mention(), msg.ChannelID), + Color: 0xFF0000, + Timestamp: msg.Timestamp.Format(time.RFC3339), + Fields: fields, + } + + if _, err := s.ChannelMessageSendEmbed(gctx.Config().Discord.Channels["mod_logs"], embed); err != nil { + zap.S().Errorw("failed to send embed", "error", err) + } + } +} + +// guildMemberAdd is a handler for new joins func guildMemberAdd(gctx global.Context) func(s *discordgo.Session, m *discordgo.GuildMemberAdd) { return func(s *discordgo.Session, m *discordgo.GuildMemberAdd) { - finalRoles := append(m.Roles, gctx.Config().Discord.DefaultRoleId) - if _, err := s.GuildMemberEdit(m.GuildID, m.User.ID, &discordgo.GuildMemberParams{ - Roles: &finalRoles, - }); err != nil { - zap.S().Errorw("failed to add default role to user", "error", err) + if gctx.Config().Discord.DefaultRoleId != "" { + finalRoles := append(m.Roles, gctx.Config().Discord.DefaultRoleId) + + if _, err := s.GuildMemberEdit(m.GuildID, m.User.ID, &discordgo.GuildMemberParams{ + Roles: &finalRoles, + }); err != nil { + zap.S().Errorw("failed to add default role to user", "error", err) + } } } } From 4ff6a7bcef82f0de4c9f68ed11c4d22e5c0eb4f9 Mon Sep 17 00:00:00 2001 From: Anatole Date: Tue, 30 Aug 2022 19:31:25 +0200 Subject: [PATCH 3/5] formatting --- cmd/main.go | 4 +++- internal/commands/commands.go | 7 +++++-- internal/commands/user_info.cmd.go | 1 - internal/handler/handler.go | 1 - 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/cmd/main.go b/cmd/main.go index ae594e7..803ce8c 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -111,7 +111,9 @@ func main() { } handler.Register(gctx, gctx.Inst().Discord.Session()) - commands.Setup(gctx) + if err := commands.Setup(gctx); err != nil { + zap.S().Fatalw("failed to setup commands", "error", err) + } zap.S().Infow("discord, ok") } diff --git a/internal/commands/commands.go b/internal/commands/commands.go index a0f5743..1fd21ab 100644 --- a/internal/commands/commands.go +++ b/internal/commands/commands.go @@ -27,7 +27,7 @@ func Setup(gctx global.Context) error { registeredCommands, _ := disc.ApplicationCommands(appID, guildID) for _, cmd := range registeredCommands { - disc.ApplicationCommandDelete(appID, guildID, cmd.ID) + _ = disc.ApplicationCommandDelete(appID, guildID, cmd.ID) } commands := []*Command{ @@ -44,7 +44,7 @@ func Setup(gctx global.Context) error { if err := cmd.Handler(s, i); err != nil { zap.S().Errorw("failed to handle command", "command", cmd.Data.Name, "error", err) - s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{ + err := s.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{ Type: discordgo.InteractionResponseChannelMessageWithSource, Data: &discordgo.InteractionResponseData{ Content: err.Error(), @@ -52,6 +52,9 @@ func Setup(gctx global.Context) error { Flags: discordgo.MessageFlagsEphemeral, }, }) + if err != nil { + zap.S().Errorw("failed to respond to command about the failure to handle the command", "error", err) + } } }) } diff --git a/internal/commands/user_info.cmd.go b/internal/commands/user_info.cmd.go index fe7436a..7496d9f 100644 --- a/internal/commands/user_info.cmd.go +++ b/internal/commands/user_info.cmd.go @@ -58,7 +58,6 @@ func UserInfo(gctx global.Context, appID string, guildID string) *Command { } // Format an embed - fmt.Println(avatarURL) embed := &discordgo.MessageEmbed{ Type: discordgo.EmbedTypeRich, Title: fmt.Sprintf("%s (%s)", user.DisplayName, user.Username), diff --git a/internal/handler/handler.go b/internal/handler/handler.go index b99974d..66dac0f 100644 --- a/internal/handler/handler.go +++ b/internal/handler/handler.go @@ -106,7 +106,6 @@ func messageDelete(gctx global.Context) func(s *discordgo.Session, m *discordgo. // guildMemberAdd is a handler for new joins func guildMemberAdd(gctx global.Context) func(s *discordgo.Session, m *discordgo.GuildMemberAdd) { return func(s *discordgo.Session, m *discordgo.GuildMemberAdd) { - if gctx.Config().Discord.DefaultRoleId != "" { finalRoles := append(m.Roles, gctx.Config().Discord.DefaultRoleId) From e357386049c965c8845a8d7c9008e1bc7ed43dfb Mon Sep 17 00:00:00 2001 From: Anatole Date: Tue, 30 Aug 2022 19:37:46 +0200 Subject: [PATCH 4/5] update common --- go.mod | 22 ++++++++++---------- go.sum | 63 +++++++++++++++++++++++----------------------------------- 2 files changed, 36 insertions(+), 49 deletions(-) diff --git a/go.mod b/go.mod index 97b95d5..37644da 100644 --- a/go.mod +++ b/go.mod @@ -6,14 +6,15 @@ require ( github.com/bugsnag/panicwrap v1.3.4 github.com/bwmarrin/discordgo v0.26.1 github.com/prometheus/client_golang v1.12.2 - github.com/seventv/common v0.0.0-20220723113936-4f27199129f8 + github.com/seventv/common v0.0.0-20220830173401-fd12c2bf2f2b github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.12.0 - go.uber.org/zap v1.21.0 + go.uber.org/zap v1.23.0 ) require ( github.com/andybalholm/brotli v1.0.4 // indirect + github.com/montanaflynn/stats v0.6.6 // indirect github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect ) @@ -26,7 +27,6 @@ require ( github.com/fsnotify/fsnotify v1.5.4 // indirect github.com/go-redis/redis/v8 v8.11.5 // indirect github.com/go-redsync/redsync/v4 v4.5.1 // indirect - github.com/go-stack/stack v1.8.1 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/gorilla/websocket v1.4.2 // indirect @@ -34,7 +34,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 // indirect - github.com/klauspost/compress v1.15.1 // indirect + github.com/klauspost/compress v1.15.9 // indirect github.com/magiconair/properties v1.8.6 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect @@ -54,15 +54,15 @@ require ( github.com/xdg-go/scram v1.1.1 // indirect github.com/xdg-go/stringprep v1.0.3 // indirect github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect - go.mongodb.org/mongo-driver v1.9.0 - go.uber.org/atomic v1.7.0 // indirect - go.uber.org/multierr v1.6.0 // indirect - golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 // indirect - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect + go.mongodb.org/mongo-driver v1.10.1 + go.uber.org/atomic v1.10.0 // indirect + go.uber.org/multierr v1.8.0 // indirect + golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8 // indirect + golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde // indirect + golang.org/x/sys v0.0.0-20220823224334-20c2bfdbfe24 // indirect golang.org/x/text v0.3.7 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - gopkg.in/yaml.v3 v3.0.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index f1c2a5c..c7d0964 100644 --- a/go.sum +++ b/go.sum @@ -46,7 +46,6 @@ github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk5 github.com/andybalholm/brotli v1.0.4 h1:V7DdXeJtZscaqfNuAdSRuRFzuiKlHSC/Zh3zl9qY3JY= github.com/andybalholm/brotli v1.0.4/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= -github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -103,8 +102,6 @@ github.com/go-redis/redis/v8 v8.11.5/go.mod h1:gREzHqY1hg6oD9ngVRbLStwAWKhA0FEgq github.com/go-redsync/redsync/v4 v4.5.1 h1:T97UCaY8MfQg/6kB7MTuimF4tnLOCdJbsvIoN5KmjZE= github.com/go-redsync/redsync/v4 v4.5.1/go.mod h1:AfhgO1E6W3rlUTs6Zmz/B6qBZJFasV30lwo7nlizdDs= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= -github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= @@ -203,8 +200,8 @@ github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALr github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/compress v1.15.0/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= -github.com/klauspost/compress v1.15.1 h1:y9FcTHGyrebwfP0ZZqFiaxTaiDnUrGkJkI+f583BL1A= -github.com/klauspost/compress v1.15.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.15.9 h1:wKRjX6JRtDdrE9qwa4b/Cip7ACOshUI4smpCQanqjSY= +github.com/klauspost/compress v1.15.9/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= @@ -226,6 +223,8 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= +github.com/montanaflynn/stats v0.6.6 h1:Duep6KMIDpY4Yo11iFsvyqJDyfzLF9+sndUKT+v64GQ= +github.com/montanaflynn/stats v0.6.6/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= @@ -280,8 +279,8 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d h1:Q+gqLBOPkFGHyCJxXMRqtUgUbTjI8/Ze8vu8GGyNFwo= github.com/savsgio/gotils v0.0.0-20220530130905-52f3993e8d6d/go.mod h1:Gy+0tqhJvgGlqnTF8CVGP0AaGRjwBtXs/a5PA0Y3+A4= -github.com/seventv/common v0.0.0-20220723113936-4f27199129f8 h1:lpB0AszlSI2IOc9igG5CvQMf/akVPembBbg0gsO0nQI= -github.com/seventv/common v0.0.0-20220723113936-4f27199129f8/go.mod h1:++S6KoMQtZ4OIZmcDbN26W2/I6JrNP/T/5a+/oLSpM8= +github.com/seventv/common v0.0.0-20220830173401-fd12c2bf2f2b h1:b6eF3yNmDPJvCwJM+WlAnsIvjg/6oiew23QQjktLZyQ= +github.com/seventv/common v0.0.0-20220830173401-fd12c2bf2f2b/go.mod h1:zhrUKYYOTAIF8PpmD2LCRtSLsTyViOJtUKnXxMGtCa0= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= @@ -303,8 +302,8 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stvp/tempredis v0.0.0-20181119212430-b82af8480203 h1:QVqDTf3h2WHt08YuiTGPZLls0Wq99X9bWd0Q5ZSBesM= github.com/stvp/tempredis v0.0.0-20181119212430-b82af8480203/go.mod h1:oqN97ltKNihBbwlX8dLpwxCl3+HnXKV/R0e+sRLd9C8= github.com/subosito/gotenv v1.3.0 h1:mjC+YW8QpAdXibNi+vNWgzmgBH4+5l5dCXv8cNysBLI= @@ -319,10 +318,8 @@ github.com/valyala/fasthttp v1.38.0/go.mod h1:t/G+3rLek+CyY9bnIE+YlMRddxVAAGjhxn github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E= github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= -github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= github.com/xdg-go/stringprep v1.0.3 h1:kdwGpVNwPFtjs98xCGkHjQtGKh86rDcRZN17QEMCOIs= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= @@ -332,23 +329,22 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.mongodb.org/mongo-driver v1.9.0 h1:f3aLGJvQmBl8d9S40IL+jEyBC6hfLPbJjv9t5hEM9ck= -go.mongodb.org/mongo-driver v1.9.0/go.mod h1:0sQWfOeY63QTntERDJJ/0SuKK0T1uVSgKCuAROlKEPY= +go.mongodb.org/mongo-driver v1.10.1 h1:NujsPveKwHaWuKUer/ceo9DzEe7HIj1SlJ6uvXZG0S4= +go.mongodb.org/mongo-driver v1.10.1/go.mod h1:z4XpeoU6w+9Vht+jAFyLgVrD+jGSQQe0+CBWFHNiHt8= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= +go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= -go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8= -go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= +go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= +go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= +go.uber.org/zap v1.23.0 h1:OjGQ5KQDEUawVHxNwQgPpiypGHOxo2mNZsOqTak4fFY= +go.uber.org/zap v1.23.0/go.mod h1:D+nX8jyLsMHMYrln8A0rJjFt/T/9/bGgIhAqxv5URuY= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -356,12 +352,12 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 h1:kUhD7nTDoI3fVd9G4ORWrbV5NY0liEs/Jg2pv5f+bBA= -golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8 h1:GIAS/yBem/gq2MUqgNIzUHW7cJMmx3TGZOrnyYaNQ6c= +golang.org/x/crypto v0.0.0-20220817201139-bc19a97f63c8/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -395,7 +391,6 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -432,12 +427,11 @@ golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220520000938-2e3eb7b945c2 h1:NWy5+hlRbC7HK+PmcXVUmW1IMyFce7to56IUvhUFm7Y= +golang.org/x/net v0.0.0-20220822230855-b0a4917ee28c h1:JVAXQ10yGGVbSyoer5VILysz6YKjdNT2bsvlayjqhes= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -458,8 +452,9 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde h1:ejfdSekXMDxDLbRrJMwUk6KnSLZ2McaUCVcIKM+N6jc= +golang.org/x/sync v0.0.0-20220819030929-7fc1605a5dde/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -477,7 +472,6 @@ golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -506,19 +500,16 @@ golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/sys v0.0.0-20220823224334-20c2bfdbfe24 h1:TyKJRhyo17yWxOMCTHKWrc5rddHORMlnZ/j57umaUd8= +golang.org/x/sys v0.0.0-20220823224334-20c2bfdbfe24/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -527,7 +518,6 @@ golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -543,7 +533,6 @@ golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= @@ -583,7 +572,6 @@ golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -695,14 +683,13 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0 h1:hjy8E9ON/egN1tAYqKb61G10WtihqetD4sz2H+8nIeA= -gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From c0fff659717416242f111e25eb13e1a0a5df99ac Mon Sep 17 00:00:00 2001 From: Anatole Date: Tue, 30 Aug 2022 19:48:53 +0200 Subject: [PATCH 5/5] k8s: update config --- k8s/production.template.yaml | 4 ++++ k8s/staging.template.yaml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/k8s/production.template.yaml b/k8s/production.template.yaml index 79b4847..bb2b56d 100644 --- a/k8s/production.template.yaml +++ b/k8s/production.template.yaml @@ -98,6 +98,9 @@ data: # Log level level: info + cdn_url: cdn.7tv.app + website_url: https://7tv.app + http: addr: "0.0.0.0" port: 3000 @@ -105,6 +108,7 @@ data: discord: channels: activity_feed: "817375925271527449" + mod_logs: "989251544165777450" health: enabled: true diff --git a/k8s/staging.template.yaml b/k8s/staging.template.yaml index 79b4847..5219705 100644 --- a/k8s/staging.template.yaml +++ b/k8s/staging.template.yaml @@ -98,6 +98,9 @@ data: # Log level level: info + cdn_url: cdn.7tv.dev + website_url: https://7tv.dev + http: addr: "0.0.0.0" port: 3000 @@ -105,6 +108,7 @@ data: discord: channels: activity_feed: "817375925271527449" + mod_logs: "989251544165777450" health: enabled: true