mirror of
https://github.com/diamondburned/cchat-discord.git
synced 2025-03-21 09:29:27 +00:00
Added MessagesBefore
This commit is contained in:
parent
528f40bb72
commit
b9d06fade5
|
@ -28,7 +28,7 @@ func NewCategory(s *Session, ch discord.Channel) *Category {
|
|||
}
|
||||
}
|
||||
|
||||
func (c *Category) ID() string {
|
||||
func (c *Category) ID() cchat.ID {
|
||||
return c.id.String()
|
||||
}
|
||||
|
||||
|
|
29
channel.go
29
channel.go
|
@ -71,6 +71,7 @@ var (
|
|||
_ cchat.ServerNickname = (*Channel)(nil)
|
||||
_ cchat.ServerMessageEditor = (*Channel)(nil)
|
||||
_ cchat.ServerMessageActioner = (*Channel)(nil)
|
||||
_ cchat.ServerMessageBacklogger = (*Channel)(nil)
|
||||
_ cchat.ServerMessageTypingIndicator = (*Channel)(nil)
|
||||
_ cchat.ServerMessageUnreadIndicator = (*Channel)(nil)
|
||||
)
|
||||
|
@ -115,7 +116,7 @@ func (ch *Channel) guild() (*discord.Guild, error) {
|
|||
return nil, errors.New("channel not in a guild")
|
||||
}
|
||||
|
||||
func (ch *Channel) ID() string {
|
||||
func (ch *Channel) ID() cchat.ID {
|
||||
return ch.id.String()
|
||||
}
|
||||
|
||||
|
@ -287,6 +288,32 @@ func (ch *Channel) JoinServer(ctx context.Context, ct cchat.MessagesContainer) (
|
|||
return joinCancels(addcancel()), nil
|
||||
}
|
||||
|
||||
func (ch *Channel) MessagesBefore(ctx context.Context, b cchat.ID, c cchat.MessagePrepender) error {
|
||||
p, err := discord.ParseSnowflake(b)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "Failed to parse snowflake")
|
||||
}
|
||||
|
||||
s := ch.session.WithContext(ctx)
|
||||
|
||||
m, err := s.MessagesBefore(ch.id, discord.MessageID(p), uint(ch.session.MaxMessages()))
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "Failed to get messages")
|
||||
}
|
||||
|
||||
// Create the backlog without any member information.
|
||||
g, err := s.Guild(ch.guildID)
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "Failed to get guild")
|
||||
}
|
||||
|
||||
for _, m := range m {
|
||||
c.PrependMessage(NewBacklogMessage(m, ch.session, *g))
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// MessageEditable returns true if the given message ID belongs to the current
|
||||
// user.
|
||||
func (ch *Channel) MessageEditable(id string) bool {
|
||||
|
|
|
@ -135,7 +135,7 @@ func NewListMember(ch *Channel, it gateway.GuildMemberListOpItem) *ListMember {
|
|||
}
|
||||
}
|
||||
|
||||
func (l *ListMember) ID() string {
|
||||
func (l *ListMember) ID() cchat.ID {
|
||||
return l.userID.String()
|
||||
}
|
||||
|
||||
|
@ -305,7 +305,7 @@ func NewListSection(listID string, ch *Channel, group gateway.GuildMemberListGro
|
|||
}
|
||||
}
|
||||
|
||||
func (s *ListSection) ID() string {
|
||||
func (s *ListSection) ID() cchat.ID {
|
||||
return s.id
|
||||
// return fmt.Sprintf("%s-%s", s.listID, s.name)
|
||||
}
|
||||
|
|
2
go.mod
2
go.mod
|
@ -4,7 +4,7 @@ go 1.14
|
|||
|
||||
require (
|
||||
github.com/diamondburned/arikawa v1.2.0
|
||||
github.com/diamondburned/cchat v0.0.48
|
||||
github.com/diamondburned/cchat v0.0.49
|
||||
github.com/diamondburned/ningen v0.1.1-0.20200818185419-0d3e89f25ee1
|
||||
github.com/dustin/go-humanize v1.0.0
|
||||
github.com/go-test/deep v1.0.6
|
||||
|
|
2
go.sum
2
go.sum
|
@ -67,6 +67,8 @@ github.com/diamondburned/cchat v0.0.47 h1:qU2TNeXlqru8za4qAgMPWTw6k8HGGOyic08GPP
|
|||
github.com/diamondburned/cchat v0.0.47/go.mod h1:+zXktogE45A0om4fT6B/z6Ii7FXNafjxsNspI0rlhbU=
|
||||
github.com/diamondburned/cchat v0.0.48 h1:MAzGzKY20JBh/LnirOZVPwbMq07xfqu4Lb4XsV9/sXQ=
|
||||
github.com/diamondburned/cchat v0.0.48/go.mod h1:+zXktogE45A0om4fT6B/z6Ii7FXNafjxsNspI0rlhbU=
|
||||
github.com/diamondburned/cchat v0.0.49 h1:zP6QvjdRU3UqDZt3rEqjkR/5M68XRVms7htHfE9tLOc=
|
||||
github.com/diamondburned/cchat v0.0.49/go.mod h1:+zXktogE45A0om4fT6B/z6Ii7FXNafjxsNspI0rlhbU=
|
||||
github.com/diamondburned/ningen v0.1.1-0.20200621014632-6babb812b249 h1:yP7kJ+xCGpDz6XbcfACJcju4SH1XDPwlrvbofz3lP8I=
|
||||
github.com/diamondburned/ningen v0.1.1-0.20200621014632-6babb812b249/go.mod h1:xW9hpBZsGi8KpAh10TyP+YQlYBo+Xc+2w4TR6N0951A=
|
||||
github.com/diamondburned/ningen v0.1.1-0.20200708085949-b64e350f3b8c h1:3h/kyk6HplYZF3zLi106itjYJWjbuMK/twijeGLEy2M=
|
||||
|
|
4
guild.go
4
guild.go
|
@ -44,7 +44,7 @@ func NewGuildFolder(s *Session, gf gateway.GuildFolder) *GuildFolder {
|
|||
}
|
||||
}
|
||||
|
||||
func (gf *GuildFolder) ID() string {
|
||||
func (gf *GuildFolder) ID() cchat.ID {
|
||||
return strconv.FormatInt(int64(gf.GuildFolder.ID), 10)
|
||||
}
|
||||
|
||||
|
@ -115,7 +115,7 @@ func (g *Guild) selfState() (*discord.Guild, error) {
|
|||
return g.session.Store.Guild(g.id)
|
||||
}
|
||||
|
||||
func (g *Guild) ID() string {
|
||||
func (g *Guild) ID() cchat.ID {
|
||||
return g.id.String()
|
||||
}
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@ func NewHeaderDelete(d *gateway.MessageDeleteEvent) messageHeader {
|
|||
}
|
||||
}
|
||||
|
||||
func (m messageHeader) ID() string {
|
||||
func (m messageHeader) ID() cchat.ID {
|
||||
return m.id.String()
|
||||
}
|
||||
|
||||
|
@ -125,7 +125,7 @@ func RenderMemberName(m discord.Member, g discord.Guild, s *Session) text.Rich {
|
|||
return name
|
||||
}
|
||||
|
||||
func (a Author) ID() string {
|
||||
func (a Author) ID() cchat.ID {
|
||||
return a.id.String()
|
||||
}
|
||||
|
||||
|
|
|
@ -117,7 +117,7 @@ func NewSession(s *state.State) (*Session, error) {
|
|||
}, nil
|
||||
}
|
||||
|
||||
func (s *Session) ID() string {
|
||||
func (s *Session) ID() cchat.ID {
|
||||
return s.userID.String()
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue