diff options
| author | raven <citrons@mondecitronne.com> | 2026-02-10 17:32:28 -0600 |
|---|---|---|
| committer | raven <citrons@mondecitronne.com> | 2026-02-10 17:32:28 -0600 |
| commit | 64900975d5cd90910830dae3f1e5596f1ce2d1a3 (patch) | |
| tree | 2e828fe8ea3f74df1abb2df0df57a3eddf77ca02 /server/channel | |
| parent | d24a596f8421dc6cd0f42948ec43876e607dcf73 (diff) | |
direct channel list
Diffstat (limited to 'server/channel')
| -rw-r--r-- | server/channel/channel.go | 14 | ||||
| -rw-r--r-- | server/channel/command.go | 2 |
2 files changed, 12 insertions, 4 deletions
diff --git a/server/channel/channel.go b/server/channel/channel.go index d907bc0..ef066e5 100644 --- a/server/channel/channel.go +++ b/server/channel/channel.go @@ -75,10 +75,10 @@ func (cs *ChannelKind) GetDirect(among map[string]bool) *Channel { return &c } -func (cs *ChannelKind) UserChannels(uid string) map[string]bool { +func (cs *ChannelKind) getChannelList(uid string, list string) map[string]bool { result := make(map[string]bool) err := cs.db.View(func(tx *bolt.Tx) error { - channels := tx.Bucket([]byte("user channels")) + channels := tx.Bucket([]byte(list)) if channels == nil { return nil } @@ -92,11 +92,19 @@ func (cs *ChannelKind) UserChannels(uid string) map[string]bool { }) }) if err != nil { - log.Fatal("error updating database: ", err) + log.Fatal("error reading database: ", err) } return result } +func (cs *ChannelKind) UserChannels(uid string) map[string]bool { + return cs.getChannelList(uid, "user channels") +} + +func (cs *ChannelKind) DirectChannels(uid string) map[string]bool { + return cs.getChannelList(uid, "direct channels") +} + func (cs *ChannelKind) ByName(name string) *Channel { switch ch := cs.world.Lookup("channel", name).(type) { case *Channel: diff --git a/server/channel/command.go b/server/channel/command.go index 23acccb..e60bb17 100644 --- a/server/channel/command.go +++ b/server/channel/command.go @@ -128,7 +128,7 @@ func (c *Channel) SendRequest(r session.Request) { } cmd := proto.NewCmd("list", c.Id()) for m, _ := range c.Members() { - u := c.kind.world.GetObject(m).(*user.User) + u := c.kind.world.GetObject(m) cmd.Args = append(cmd.Args, u.InfoFor(r.From.UserId)) } r.Reply(cmd) |
