Procházet zdrojové kódy

fix(cmd): do not fetch member for webhooks (#629)

Ayyan před 5 měsíci
rodič
revize
0499f5be6d
1 změnil soubory, kde provedl 8 přidání a 1 odebrání
  1. 8 1
      cmd/messages_list.go

+ 8 - 1
cmd/messages_list.go

@@ -143,7 +143,9 @@ func (ml *messagesList) drawTimestamps(w io.Writer, ts discord.Timestamp) {
 func (ml *messagesList) drawAuthor(w io.Writer, message discord.Message) {
 func (ml *messagesList) drawAuthor(w io.Writer, message discord.Message) {
 	name := message.Author.DisplayOrUsername()
 	name := message.Author.DisplayOrUsername()
 	foreground := tcell.ColorDefault
 	foreground := tcell.ColorDefault
-	if message.GuildID.IsValid() {
+
+	// Webhooks do not have nicknames or roles.
+	if message.GuildID.IsValid() && !message.WebhookID.IsValid() {
 		member, err := discordState.Cabinet.Member(message.GuildID, message.Author.ID)
 		member, err := discordState.Cabinet.Member(message.GuildID, message.Author.ID)
 		if err != nil {
 		if err != nil {
 			slog.Error("failed to get member from state", "guild_id", message.GuildID, "member_id", message.Author.ID, "err", err)
 			slog.Error("failed to get member from state", "guild_id", message.GuildID, "member_id", message.Author.ID, "err", err)
@@ -640,6 +642,11 @@ func (ml *messagesList) delete() {
 func (ml *messagesList) requestGuildMembers(gID discord.GuildID, ms []discord.Message) {
 func (ml *messagesList) requestGuildMembers(gID discord.GuildID, ms []discord.Message) {
 	var usersToFetch []discord.UserID
 	var usersToFetch []discord.UserID
 	for _, m := range ms {
 	for _, m := range ms {
+		// Do not fetch member for a webhook message.
+		if m.WebhookID.IsValid() {
+			continue
+		}
+
 		if member, _ := discordState.Cabinet.Member(gID, m.Author.ID); member == nil {
 		if member, _ := discordState.Cabinet.Member(gID, m.Author.ID); member == nil {
 			usersToFetch = append(usersToFetch, m.Author.ID)
 			usersToFetch = append(usersToFetch, m.Author.ID)
 		}
 		}