refactor(cmd): fix common lint issues

This commit is contained in:
ayn2op 2025-06-09 14:30:41 -04:00
parent 52f118059d
commit 2947441669
2 changed files with 53 additions and 53 deletions

View file

@ -56,13 +56,13 @@ func (gt *guildsTree) createFolderNode(folder gateway.GuildFolder) {
root.AddChild(folderNode)
for _, gID := range folder.GuildIDs {
g, err := discordState.Cabinet.Guild(gID)
guild, err := discordState.Cabinet.Guild(gID)
if err != nil {
slog.Info("failed to get guild from state", "guild_id", gID, "err", err)
continue
}
gt.createGuildNode(folderNode, *g)
gt.createGuildNode(folderNode, *guild)
}
}
@ -73,84 +73,84 @@ func (gt *guildsTree) createGuildNode(n *tview.TreeNode, g discord.Guild) {
n.AddChild(guildNode)
}
func (gt *guildsTree) channelToString(c discord.Channel) string {
switch c.Type {
func (gt *guildsTree) channelToString(channel discord.Channel) string {
switch channel.Type {
case discord.DirectMessage, discord.GroupDM:
if c.Name != "" {
return c.Name
if channel.Name != "" {
return channel.Name
}
recipients := make([]string, len(c.DMRecipients))
for i, r := range c.DMRecipients {
recipients := make([]string, len(channel.DMRecipients))
for i, r := range channel.DMRecipients {
recipients[i] = r.DisplayOrUsername()
}
return strings.Join(recipients, ", ")
case discord.GuildText:
return "#" + c.Name
return "#" + channel.Name
case discord.GuildVoice, discord.GuildStageVoice:
return "v-" + c.Name
return "v-" + channel.Name
case discord.GuildAnnouncement:
return "a-" + c.Name
return "a-" + channel.Name
case discord.GuildStore:
return "s-" + c.Name
return "s-" + channel.Name
case discord.GuildForum:
return "f-" + c.Name
return "f-" + channel.Name
default:
return c.Name
return channel.Name
}
}
func (gt *guildsTree) createChannelNode(n *tview.TreeNode, c discord.Channel) *tview.TreeNode {
if c.Type != discord.DirectMessage && c.Type != discord.GroupDM {
ps, err := discordState.Permissions(c.ID, discordState.Ready().User.ID)
func (gt *guildsTree) createChannelNode(node *tview.TreeNode, channel discord.Channel) *tview.TreeNode {
if channel.Type != discord.DirectMessage && channel.Type != discord.GroupDM {
perms, err := discordState.Permissions(channel.ID, discordState.Ready().User.ID)
if err != nil {
slog.Error("failed to get permissions", "err", err, "channel_id", c.ID)
slog.Error("failed to get permissions", "err", err, "channel_id", channel.ID)
return nil
}
if !ps.Has(discord.PermissionViewChannel) {
if !perms.Has(discord.PermissionViewChannel) {
return nil
}
}
channelNode := tview.NewTreeNode(gt.channelToString(c))
channelNode.SetReference(c.ID)
channelNode := tview.NewTreeNode(gt.channelToString(channel))
channelNode.SetReference(channel.ID)
channelNode.SetColor(tcell.GetColor(gt.cfg.Theme.GuildsTree.ChannelColor))
n.AddChild(channelNode)
node.AddChild(channelNode)
return channelNode
}
func (gt *guildsTree) createChannelNodes(n *tview.TreeNode, cs []discord.Channel) {
func (gt *guildsTree) createChannelNodes(node *tview.TreeNode, channels []discord.Channel) {
var orphanChs []discord.Channel
for _, ch := range cs {
for _, ch := range channels {
if ch.Type != discord.GuildCategory && !ch.ParentID.IsValid() {
orphanChs = append(orphanChs, ch)
}
}
for _, c := range orphanChs {
gt.createChannelNode(n, c)
gt.createChannelNode(node, c)
}
PARENT_CHANNELS:
for _, c := range cs {
for _, c := range channels {
if c.Type == discord.GuildCategory {
for _, nested := range cs {
for _, nested := range channels {
if nested.ParentID == c.ID {
gt.createChannelNode(n, c)
gt.createChannelNode(node, c)
continue PARENT_CHANNELS
}
}
}
}
for _, c := range cs {
if c.ParentID.IsValid() {
for _, channel := range channels {
if channel.ParentID.IsValid() {
var parent *tview.TreeNode
n.Walk(func(node, _ *tview.TreeNode) bool {
if node.GetReference() == c.ParentID {
node.Walk(func(node, _ *tview.TreeNode) bool {
if node.GetReference() == channel.ParentID {
parent = node
return false
}
@ -159,70 +159,70 @@ PARENT_CHANNELS:
})
if parent != nil {
gt.createChannelNode(parent, c)
gt.createChannelNode(parent, channel)
}
}
}
}
func (gt *guildsTree) onSelected(n *tview.TreeNode) {
func (gt *guildsTree) onSelected(node *tview.TreeNode) {
gt.selectedChannelID = 0
app.messagesText.reset()
app.messageInput.reset()
if len(n.GetChildren()) != 0 {
n.SetExpanded(!n.IsExpanded())
if len(node.GetChildren()) != 0 {
node.SetExpanded(!node.IsExpanded())
return
}
switch ref := n.GetReference().(type) {
switch ref := node.GetReference().(type) {
case discord.GuildID:
go discordState.MemberState.Subscribe(ref)
cs, err := discordState.Cabinet.Channels(ref)
channels, err := discordState.Cabinet.Channels(ref)
if err != nil {
slog.Error("failed to get channels", "err", err, "guild_id", ref)
return
}
sort.Slice(cs, func(i, j int) bool {
return cs[i].Position < cs[j].Position
sort.Slice(channels, func(i, j int) bool {
return channels[i].Position < channels[j].Position
})
gt.createChannelNodes(n, cs)
gt.createChannelNodes(node, channels)
case discord.ChannelID:
c, err := discordState.Cabinet.Channel(ref)
channel, err := discordState.Cabinet.Channel(ref)
if err != nil {
slog.Error("failed to get channel", "channel_id", ref)
return
}
app.messagesText.drawMsgs(c.ID)
app.messagesText.drawMsgs(channel.ID)
app.messagesText.ScrollToEnd()
app.messagesText.SetTitle(gt.channelToString(*c))
app.messagesText.SetTitle(gt.channelToString(*channel))
gt.selectedChannelID = c.ID
gt.selectedChannelID = channel.ID
gt.app.SetFocus(app.messageInput)
case nil: // Direct messages
cs, err := discordState.PrivateChannels()
channels, err := discordState.PrivateChannels()
if err != nil {
slog.Error("failed to get private channels", "err", err)
return
}
sort.Slice(cs, func(a, b int) bool {
sort.Slice(channels, func(a, b int) bool {
msgID := func(ch discord.Channel) discord.MessageID {
if ch.LastMessageID.IsValid() {
return ch.LastMessageID
}
return discord.MessageID(ch.ID)
}
return msgID(cs[a]) > msgID(cs[b])
return msgID(channels[a]) > msgID(channels[b])
})
for _, c := range cs {
gt.createChannelNode(n, c)
for _, c := range channels {
gt.createChannelNode(node, c)
}
}
}

View file

@ -72,7 +72,7 @@ func newMessagesText(app *tview.Application, cfg *config.Config) *messagesText {
}
func (mt *messagesText) drawMsgs(cID discord.ChannelID) {
ms, err := discordState.Messages(cID, uint(mt.cfg.MessagesLimit))
msgs, err := discordState.Messages(cID, uint(mt.cfg.MessagesLimit))
if err != nil {
slog.Error("failed to get messages", "err", err, "channel_id", cID)
return
@ -80,11 +80,11 @@ func (mt *messagesText) drawMsgs(cID discord.ChannelID) {
if app.cfg.Theme.MessagesText.ShowNicknames || app.cfg.Theme.MessagesText.ShowUsernameColors {
if ch, _ := discordState.Cabinet.Channel(cID); ch.GuildID.IsValid() {
mt.requestGuildMembers(ch.GuildID, ms)
mt.requestGuildMembers(ch.GuildID, msgs)
}
}
for _, m := range slices.Backward(ms) {
for _, m := range slices.Backward(msgs) {
app.messagesText.createMsg(m)
}
}