From 78c26e88fbfe4eba8c22e2b72a6cc03b67b4e769 Mon Sep 17 00:00:00 2001 From: ayn2op Date: Fri, 16 Oct 2026 18:37:26 -0400 Subject: [PATCH] refactor: drop unused receivers and exports --- internal/http/generated.go | 2 +- internal/http/generator.go | 2 +- internal/http/properties.go | 2 +- internal/ui/chat/composer/model.go | 2 +- internal/ui/chat/composer/msg.go | 2 +- internal/ui/chat/guildstree/model.go | 30 ++++++++++----------- internal/ui/chat/guildstree/msg.go | 10 +++---- internal/ui/chat/memberstree/model.go | 14 +++++----- internal/ui/chat/memberstree/msg.go | 10 +++---- internal/ui/chat/messageslist/embed.go | 24 ++++++++--------- internal/ui/chat/messageslist/message.go | 4 +-- internal/ui/chat/messageslist/model.go | 8 +++--- internal/ui/chat/messageslist/model_test.go | 6 ++--- internal/ui/chat/messageslist/msg.go | 12 ++++----- 14 files changed, 64 insertions(+), 64 deletions(-) diff --git a/internal/http/generated.go b/internal/http/generated.go index ddb56cc..878c4cb 100644 --- a/internal/http/generated.go +++ b/internal/http/generated.go @@ -2,4 +2,4 @@ package http -const ClientBuildNumber = 640102 +const clientBuildNumber = 640102 diff --git a/internal/http/generator.go b/internal/http/generator.go index 527de0e..3a2b819 100644 --- a/internal/http/generator.go +++ b/internal/http/generator.go @@ -17,7 +17,7 @@ const format = `// GENERATED BY go generate; DO NOT EDIT. package %s -const ClientBuildNumber = %s +const clientBuildNumber = %s ` var buildNumberRegex = regexp.MustCompile(`"BUILD_NUMBER":\s*"(\d+)"`) diff --git a/internal/http/properties.go b/internal/http/properties.go index a2b6394..a4db6f0 100644 --- a/internal/http/properties.go +++ b/internal/http/properties.go @@ -36,7 +36,7 @@ func commonProperties() gateway.IdentifyProperties { "browser_version": tls.BrowserVersion(), "browser_user_agent": BrowserUserAgent(), - "client_build_number": ClientBuildNumber, + "client_build_number": clientBuildNumber, "client_event_source": nil, "client_launch_id": uuid.NewV4().String(), diff --git a/internal/ui/chat/composer/model.go b/internal/ui/chat/composer/model.go index 1ab8396..828cabb 100644 --- a/internal/ui/chat/composer/model.go +++ b/internal/ui/chat/composer/model.go @@ -283,7 +283,7 @@ func (m Model) Update(msg tview.Msg) (Model, tview.Cmd) { kbs := m.cfg.Keybinds.Composer switch { case keybind.Matches(msg, kbs.EditLast.Keybind) && m.canEditLastMessage(): - return m, m.editLastMessage() + return m, editLastMessage() case keybind.Matches(msg, kbs.Paste.Keybind): m.pasteText() return m, pasteImage() diff --git a/internal/ui/chat/composer/msg.go b/internal/ui/chat/composer/msg.go index 91edeb6..c182381 100644 --- a/internal/ui/chat/composer/msg.go +++ b/internal/ui/chat/composer/msg.go @@ -41,7 +41,7 @@ type edit struct { // editMsg is the text and cursor that typing in the composer left. type editMsg edit -func (m Model) editLastMessage() tview.Cmd { +func editLastMessage() tview.Cmd { return func() tview.Msg { return EditLastMsg{} } } diff --git a/internal/ui/chat/guildstree/model.go b/internal/ui/chat/guildstree/model.go index bca8c9c..f1013cd 100644 --- a/internal/ui/chat/guildstree/model.go +++ b/internal/ui/chat/guildstree/model.go @@ -58,8 +58,8 @@ func (m Model) CurrentNode() *tree.Node { // View shows the tree in a box titled Guilds. func (m Model) View(focused bool) tview.Widget { - onChange := func(current *tree.Node) tview.Msg { return Msg{current} } - onSelect := func(n *tree.Node) tview.Msg { return SelectedMsg{Node: n} } + onChange := func(current *tree.Node) tview.Msg { return currentMsg{current} } + onSelect := func(n *tree.Node) tview.Msg { return selectedMsg{node: n} } return uitree.New( m.root, m.current, @@ -128,7 +128,7 @@ func (m *Model) rebuild(event *gateway.ReadyEvent) { func (m Model) refreshReadStyles(event *read.UpdateEvent) { if event.GuildID.IsValid() { if node := m.findNodeByReference(event.GuildID); node != nil { - m.setNodeLineStyle(node, m.guildNodeStyle(event.GuildID)) + setNodeLineStyle(node, m.guildNodeStyle(event.GuildID)) } } @@ -139,10 +139,10 @@ func (m Model) refreshReadStyles(event *read.UpdateEvent) { channel, err := m.state.Cabinet.Channel(event.ChannelID) if err != nil { indication := m.state.ChannelIsUnread(event.ChannelID, ningen.UnreadOpts{IncludeMutedCategories: true}) - m.setNodeLineStyle(node, unreadStyle(indication)) + setNodeLineStyle(node, unreadStyle(indication)) return } - m.setNodeLineStyle(node, m.channelNodeStyle(*channel)) + setNodeLineStyle(node, m.channelNodeStyle(*channel)) } func (m Model) updateDMNodeStyle(userID discord.UserID) { @@ -155,7 +155,7 @@ func (m Model) updateDMNodeStyle(userID discord.UserID) { if node == nil || !ok { return } - m.setNodeLineStyle(node, m.channelNodeStyle(*channel)) + setNodeLineStyle(node, m.channelNodeStyle(*channel)) } func (m Model) moveDMToFront(channelID discord.ChannelID) { @@ -180,7 +180,7 @@ func (m Model) createFolderNode(folder gateway.GuildFolder, guildsByID map[disco folderNode := tree.NewNode(name).SetExpanded(m.cfg.UI.GuildsTree.AutoExpandFolders) if folder.Color != 0 { folderStyle := tcell.StyleDefault.Foreground(tcell.NewHexColor(int32(folder.Color))) - m.setNodeLineStyle(folderNode, folderStyle) + setNodeLineStyle(folderNode, folderStyle) } m.root.AddChild(folderNode) @@ -217,7 +217,7 @@ func (m Model) createGuildNode(parent *tree.Node, guild discord.Guild) { SetExpandable(true). SetExpanded(false). SetIndent(m.cfg.Sidebar.Indents.Guild) - m.setNodeLineStyle(guildNode, m.guildNodeStyle(guild.ID)) + setNodeLineStyle(guildNode, m.guildNodeStyle(guild.ID)) parent.AddChild(guildNode) m.nodes[discord.Snowflake(guild.ID)] = guildNode } @@ -230,7 +230,7 @@ func (m Model) createChannelNode(parent *tree.Node, channel discord.Channel) { indents := m.cfg.Sidebar.Indents channelNode := tree.NewNode(ui.ChannelToString(channel, m.cfg.Icons, m.state)).SetReference(channel.ID) - m.setNodeLineStyle(channelNode, m.channelNodeStyle(channel)) + setNodeLineStyle(channelNode, m.channelNodeStyle(channel)) switch channel.Type { case discord.DirectMessage: channelNode.SetIndent(indents.DM) @@ -327,7 +327,7 @@ func (m Model) styleVoiceMembers() { style = m.cfg.Theme.GuildsTree.SpeakingStyle.Style } - m.setNodeLineStyle(member, style) + setNodeLineStyle(member, style) } } @@ -439,7 +439,7 @@ func isVoice(t discord.ChannelType) bool { } // setNodeLineStyle styles the name of node, which is the first segment of its line. -func (m Model) setNodeLineStyle(node *tree.Node, style tview.Style) { +func setNodeLineStyle(node *tree.Node, style tview.Style) { line := node.Line() line[0].Style = style node.SetLine(line) @@ -535,7 +535,7 @@ func (m Model) Update(msg tview.Msg) (Model, tview.Cmd) { case NavigateMsg: return m, m.navigate(msg.ChannelID) - case Msg: + case currentMsg: m.current = msg.current m.scrollState.ScrollToTarget() return m, nil @@ -545,9 +545,9 @@ func (m Model) Update(msg tview.Msg) (Model, tview.Cmd) { return m.Update(msg.Msg) } return m, nil - case SelectedMsg: - m.setCurrentNode(msg.Node) - return m, m.selectNode(msg.Node) + case selectedMsg: + m.setCurrentNode(msg.node) + return m, m.selectNode(msg.node) case tview.KeyMsg: kbs := m.cfg.Keybinds.GuildsTree switch { diff --git a/internal/ui/chat/guildstree/msg.go b/internal/ui/chat/guildstree/msg.go index 917c3fd..74f50dd 100644 --- a/internal/ui/chat/guildstree/msg.go +++ b/internal/ui/chat/guildstree/msg.go @@ -10,14 +10,14 @@ import ( "github.com/ayn2op/tview/tree" ) -// Msg makes a node of the tree the current one. -type Msg struct { +// currentMsg makes a node of the tree the current one. +type currentMsg struct { current *tree.Node } -// SelectedMsg is sent when the user selects a node. -type SelectedMsg struct { - Node *tree.Node +// selectedMsg is sent when the user selects a node. +type selectedMsg struct { + node *tree.Node } type ChannelLoadedMsg struct { diff --git a/internal/ui/chat/memberstree/model.go b/internal/ui/chat/memberstree/model.go index cce3662..2ef15e8 100644 --- a/internal/ui/chat/memberstree/model.go +++ b/internal/ui/chat/memberstree/model.go @@ -85,8 +85,8 @@ func (m *Model) SetChannel(channel *discord.Channel) tview.Cmd { // View shows the tree in a box titled Members. func (m Model) View(focused bool) tview.Widget { - onChange := func(current *tree.Node) tview.Msg { return Msg{current} } - onSelect := func(n *tree.Node) tview.Msg { return SelectedMsg{Node: n} } + onChange := func(current *tree.Node) tview.Msg { return currentMsg{current} } + onSelect := func(n *tree.Node) tview.Msg { return selectedMsg{node: n} } return uitree.New( m.root, m.current, @@ -124,7 +124,7 @@ func (m Model) Update(msg tview.Msg) (Model, tview.Cmd) { m.refreshStatus(msg.User.ID) return m, nil - case Msg: + case currentMsg: m.current = msg.current m.scrollState.ScrollToTarget() return m, m.requestSelectedMembers() @@ -134,10 +134,10 @@ func (m Model) Update(msg tview.Msg) (Model, tview.Cmd) { return m.Update(msg.Msg) } return m, nil - case SelectedMsg: - m.setCurrentNode(msg.Node) - if _, ok := msg.Node.Reference().(groupRef); ok { - msg.Node.SetExpanded(!msg.Node.Expanded()) + case selectedMsg: + m.setCurrentNode(msg.node) + if _, ok := msg.node.Reference().(groupRef); ok { + msg.node.SetExpanded(!msg.node.Expanded()) } return m, m.requestSelectedMembers() case tview.KeyMsg: diff --git a/internal/ui/chat/memberstree/msg.go b/internal/ui/chat/memberstree/msg.go index 81a08c8..42027db 100644 --- a/internal/ui/chat/memberstree/msg.go +++ b/internal/ui/chat/memberstree/msg.go @@ -6,14 +6,14 @@ import ( "github.com/ayn2op/tview/tree" ) -// Msg makes a node of the tree the current one. -type Msg struct { +// currentMsg makes a node of the tree the current one. +type currentMsg struct { current *tree.Node } -// SelectedMsg is sent when the user selects a node. -type SelectedMsg struct { - Node *tree.Node +// selectedMsg is sent when the user selects a node. +type selectedMsg struct { + node *tree.Node } // requestSelectedMembers requests the chunk of the member list after the selected member, so that the members below it load before they are reached. diff --git a/internal/ui/chat/messageslist/embed.go b/internal/ui/chat/messageslist/embed.go index 84211f2..e568e47 100644 --- a/internal/ui/chat/messageslist/embed.go +++ b/internal/ui/chat/messageslist/embed.go @@ -56,17 +56,17 @@ func (m Model) drawEmbeds(builder *richtext.Builder, message discord.Message, ba prefix := richtext.NewSegment(embedPrefix, prefixStyle) builder.NewLine() for _, line := range lines { - if strings.TrimSpace(line.Text) == "" { + if strings.TrimSpace(line.text) == "" { continue } msg := message - msg.Content = line.Text - lineStyle := lineStyles[line.Kind] + msg.Content = line.text + lineStyle := lineStyles[line.kind] // Embed descriptions are always markdown-rendered to match Discord's rich embed semantics, even when message markdown is globally disabled. - rendered, _, _ := m.renderContent(msg, lineStyle, line.Kind == embedLineDescription) + rendered, _, _ := m.renderContent(msg, lineStyle, line.kind == embedLineDescription) for _, renderedLine := range rendered { - if line.URL != "" { - renderedLine = lineWithURL(renderedLine, line.URL) + if line.url != "" { + renderedLine = lineWithURL(renderedLine, line.url) } // The prefix is added after wrapping, so every visual line has it, not only the first. for _, wrapped := range richtext.Wrap(renderedLine, wrapWidth) { @@ -91,9 +91,9 @@ func lineWithURL(line richtext.Line, rawURL string) richtext.Line { } type embedLine struct { - Text string - Kind embedLineKind - URL string + text string + kind embedLineKind + url string } type embedLineKind uint8 @@ -146,9 +146,9 @@ func embedLines(embed discord.Embed, contentURLs map[string]struct{}) []embedLin } seen[key] = struct{}{} lines = append(lines, embedLine{ - Text: s, - Kind: kind, - URL: rawURL, + text: s, + kind: kind, + url: rawURL, }) } diff --git a/internal/ui/chat/messageslist/message.go b/internal/ui/chat/messageslist/message.go index 8a19074..7b2d980 100644 --- a/internal/ui/chat/messageslist/message.go +++ b/internal/ui/chat/messageslist/message.go @@ -124,7 +124,7 @@ func (m Model) writeMessage(builder *richtext.Builder, message discord.Message, case discord.InlinedReplyMessage: m.drawDefaultMessage(builder, message, baseStyle, width, false) case discord.ChannelPinnedMessage: - m.drawPinnedMessage(builder, message, baseStyle) + drawPinnedMessage(builder, message, baseStyle) default: m.drawLayout(builder, message, baseStyle, false, nil) } @@ -370,6 +370,6 @@ func (m Model) drawReply(builder *richtext.Builder, message discord.Message, bas } } -func (m Model) drawPinnedMessage(builder *richtext.Builder, message discord.Message, baseStyle tview.Style) { +func drawPinnedMessage(builder *richtext.Builder, message discord.Message, baseStyle tview.Style) { builder.Write(message.Author.DisplayOrUsername()+" pinned a message.", baseStyle) } diff --git a/internal/ui/chat/messageslist/model.go b/internal/ui/chat/messageslist/model.go index 65b0d9c..f73d1ae 100644 --- a/internal/ui/chat/messageslist/model.go +++ b/internal/ui/chat/messageslist/model.go @@ -419,11 +419,11 @@ func (m Model) Update(msg tview.Msg) (Model, tview.Cmd) { } case olderMessagesLoadedMsg: selectedChannel := m.channel - if selectedChannel == nil || selectedChannel.ID != msg.ChannelID { + if selectedChannel == nil || selectedChannel.ID != msg.channelID { return m, nil } - older := make([]messageItem, len(msg.Older)) - for i, message := range msg.Older { + older := make([]messageItem, len(msg.older)) + for i, message := range msg.older { older[i] = messageItem{message: message} } m.items = slices.Concat(older, m.items) @@ -436,7 +436,7 @@ func (m Model) Update(msg tview.Msg) (Model, tview.Cmd) { } m.rebuildItems() if selectedChannel.GuildID.IsValid() { - return m, tview.Batch(m.requestGuildMembers(selectedChannel.GuildID, msg.Older), m.loadPreviews()) + return m, tview.Batch(m.requestGuildMembers(selectedChannel.GuildID, msg.older), m.loadPreviews()) } return m, m.loadPreviews() case previewLoadedMsg: diff --git a/internal/ui/chat/messageslist/model_test.go b/internal/ui/chat/messageslist/model_test.go index b859fda..1403ae5 100644 --- a/internal/ui/chat/messageslist/model_test.go +++ b/internal/ui/chat/messageslist/model_test.go @@ -61,7 +61,7 @@ func TestModelBuildItem(t *testing.T) { t.Fatal("clicking the top message did not fetch older messages") } ml.selectBottom() - *ml, _ = ml.Update(olderMessagesLoadedMsg{ChannelID: 1, Older: []discord.Message{{ID: 1}}}) + *ml, _ = ml.Update(olderMessagesLoadedMsg{channelID: 1, older: []discord.Message{{ID: 1}}}) selected, ok := ml.selectedMessage() if !ok || selected.ID != 3 || text() != view { t.Fatal("prepend lost selection or cached text") @@ -143,7 +143,7 @@ func TestModelRebuildItems(t *testing.T) { assertSelected(3) ml.selectUp() assertSelected(2) - *ml, _ = ml.Update(olderMessagesLoadedMsg{ChannelID: 1, Older: messages[2:]}) + *ml, _ = ml.Update(olderMessagesLoadedMsg{channelID: 1, older: messages[2:]}) assertItems(1, 2, 3) assertSelected(2) ml.deleteMessage(ml.cursor) @@ -344,7 +344,7 @@ func TestModelScrollToTop(t *testing.T) { } older := []discord.Message{{ID: 1, Content: "hi"}, {ID: 2, Content: "hi"}} - *ml, _ = ml.Update(olderMessagesLoadedMsg{ChannelID: 1, Older: older}) + *ml, _ = ml.Update(olderMessagesLoadedMsg{channelID: 1, older: older}) cmd, _ := scrollUp() if cmd != nil { t.Fatal("older messages were fetched again before scrolling to the new top") diff --git a/internal/ui/chat/messageslist/msg.go b/internal/ui/chat/messageslist/msg.go index 6798ab7..27af36d 100644 --- a/internal/ui/chat/messageslist/msg.go +++ b/internal/ui/chat/messageslist/msg.go @@ -26,8 +26,8 @@ import ( type Msg interface{ messagesList() } type olderMessagesLoadedMsg struct { - ChannelID discord.ChannelID - Older []discord.Message + channelID discord.ChannelID + older []discord.Message } func (olderMessagesLoadedMsg) messagesList() {} @@ -103,7 +103,7 @@ func (m Model) fetchOlderMessages() tview.Cmd { older := slices.Clone(messages) slices.Reverse(older) - return olderMessagesLoadedMsg{ChannelID: channelID, Older: older} + return olderMessagesLoadedMsg{channelID: channelID, older: older} } } @@ -237,7 +237,7 @@ func (m Model) download() tview.Cmd { for i, attachment := range selectedMessage.Attachments { items[i] = picker.Item{Text: attachment.Filename, Reference: m.confirmAttachment(attachment, m.saveAttachment(attachment))} } - return m.showAttachmentsPicker(items) + return showAttachmentsPicker(items) } func (m Model) showAttachmentsList(urls []string, attachments []discord.Attachment, openAttachment func(discord.Attachment) tview.Cmd) tview.Cmd { @@ -248,10 +248,10 @@ func (m Model) showAttachmentsList(urls []string, attachments []discord.Attachme for _, url := range urls { items = append(items, picker.Item{Text: url, Reference: openURL(url)}) } - return m.showAttachmentsPicker(items) + return showAttachmentsPicker(items) } -func (m Model) showAttachmentsPicker(items picker.Items) tview.Cmd { +func showAttachmentsPicker(items picker.Items) tview.Cmd { return func() tview.Msg { return ShowAttachmentsMsg(items) } }