fix models channel: use ChannelPoint

pull/1/head
Edouard Paris 5 years ago
parent 92f33b2a48
commit fb61bdb09a

@ -7,7 +7,7 @@ import (
)
type Channels struct {
index map[uint64]*models.Channel
index map[string]*models.Channel
list []*models.Channel
mu sync.RWMutex
}
@ -24,12 +24,12 @@ func (c *Channels) Get(index int) *models.Channel {
return c.list[index]
}
func (c *Channels) GetByID(id uint64) *models.Channel {
return c.index[id]
func (c *Channels) GetByChanPoint(chanPoint string) *models.Channel {
return c.index[chanPoint]
}
func (c *Channels) Contains(channel *models.Channel) bool {
_, ok := c.index[channel.ID]
_, ok := c.index[channel.ChannelPoint]
return ok
}
@ -39,7 +39,7 @@ func (c *Channels) Add(channel *models.Channel) {
if c.Contains(channel) {
return
}
c.index[channel.ID] = channel
c.index[channel.ChannelPoint] = channel
c.list = append(c.list, channel)
}
@ -47,7 +47,7 @@ func (c *Channels) Update(newChannel *models.Channel) {
c.mu.Lock()
defer c.mu.Unlock()
oldChannel, ok := c.index[newChannel.ID]
oldChannel, ok := c.index[newChannel.ChannelPoint]
if !ok {
c.Add(newChannel)
return
@ -82,7 +82,7 @@ func (c *Channels) Update(newChannel *models.Channel) {
func NewChannels() *Channels {
return &Channels{
list: []*models.Channel{},
index: make(map[uint64]*models.Channel),
index: make(map[string]*models.Channel),
}
}

@ -50,7 +50,7 @@ func (m *Models) RefreshChannels(ctx context.Context) error {
if !m.Channels.Contains(channels[i]) {
m.Channels.Add(channels[i])
}
channel := m.Channels.GetByID(channels[i].ID)
channel := m.Channels.GetByChanPoint(channels[i].ChannelPoint)
if channel != nil &&
(channel.UpdatesCount < channels[i].UpdatesCount ||
channel.LastUpdate == nil) {

@ -114,7 +114,7 @@ func (c *Channels) Set(g *gocui.Gui, x0, y0, x1, y1 int) error {
func displayChannelsColumns(v *gocui.View) {
v.Clear()
fmt.Fprintln(v, fmt.Sprintf("%-13s %-20s %-21s %12s %12s %5s %-15s %s",
fmt.Fprintln(v, fmt.Sprintf("%-13s %-25s %-21s %12s %12s %5s %-15s %s",
"STATUS",
"ALIAS",
"GAUGE",
@ -130,7 +130,7 @@ func (c *Channels) display() {
p := message.NewPrinter(language.English)
c.view.Clear()
for _, item := range c.channels.List() {
line := fmt.Sprintf("%s %-20s %s %s %s %5d %15s %d %500s",
line := fmt.Sprintf("%s %-25s %s %s %s %5d %15s %d %500s",
status(item),
alias(item),
gauge(item),

Loading…
Cancel
Save