refactor: drop unused receivers and exports

This commit is contained in:
ayn2op 2026-10-16 18:37:26 -04:00
parent f7bd6ef441
commit 78c26e88fb
14 changed files with 64 additions and 64 deletions

View file

@ -2,4 +2,4 @@
package http
const ClientBuildNumber = 640102
const clientBuildNumber = 640102

View file

@ -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+)"`)

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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