Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions objects/channel/cachedchannel.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ type CachedChannel struct {
ApplicationId uint64 `json:"application_id"`
ParentId objects.NullableSnowflake `json:"parent_id,omitempty"`
LastPinTimestamp time.Time `json:"last_pin_timestamp"`
Flags ChannelFlag `json:"flags"`
}

func (c *CachedChannel) IsObfuscated() bool {
return c.Flags.Has(ChannelFlagObfuscated)
}

func (c *CachedChannel) ToChannel(channelId, guildId uint64) Channel {
Expand All @@ -45,5 +50,6 @@ func (c *CachedChannel) ToChannel(channelId, guildId uint64) Channel {
ApplicationId: c.ApplicationId,
ParentId: c.ParentId,
LastPinTimestamp: c.LastPinTimestamp,
Flags: c.Flags,
}
}
7 changes: 7 additions & 0 deletions objects/channel/channel.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,17 @@ type Channel struct {
MemberCount uint64 `json:"member_count"`
ThreadMetadata *ThreadMetadata `json:"thread_metadata,omitempty"`
Member ThreadMember `json:"member"`
Flags ChannelFlag `json:"flags"`
}

func (c *Channel) Mention() string {
return fmt.Sprintf("<#%d>", c.Id)
}

func (c *Channel) IsObfuscated() bool {
return c.Flags.Has(ChannelFlagObfuscated)
}

func (c *Channel) ToCachedChannel() CachedChannel {
return CachedChannel{
GuildId: c.GuildId,
Expand All @@ -57,6 +62,7 @@ func (c *Channel) ToCachedChannel() CachedChannel {
ApplicationId: c.ApplicationId,
ParentId: c.ParentId,
LastPinTimestamp: c.LastPinTimestamp,
Flags: c.Flags,
}
}

Expand All @@ -72,5 +78,6 @@ func (c *Channel) ToPartialChannel() PartialChannel {
LastMessageId: c.LastMessageId,
ParentId: c.ParentId,
LastPinTimestamp: c.LastPinTimestamp,
Flags: c.Flags,
}
}
15 changes: 15 additions & 0 deletions objects/channel/channelflags.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package channel

type ChannelFlag uint64

const (
ChannelFlagPinned ChannelFlag = 1 << 1
ChannelFlagRequireTag ChannelFlag = 1 << 4
ChannelFlagHideMediaDownloadOptions ChannelFlag = 1 << 15
ChannelFlagObfuscated ChannelFlag = 1 << 17
ChannelFlagIsSpoilerChannel ChannelFlag = 1 << 21
)

func (f ChannelFlag) Has(flag ChannelFlag) bool {
return f&flag != 0
}
5 changes: 5 additions & 0 deletions objects/channel/partialchannel.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,9 @@ type PartialChannel struct {
LastMessageId objects.NullableSnowflake `json:"last_message_id"`
ParentId objects.NullableSnowflake `json:"parent_id,omitempty"`
LastPinTimestamp time.Time `json:"last_pin_timestamp"`
Flags ChannelFlag `json:"flags"`
}

func (c *PartialChannel) IsObfuscated() bool {
return c.Flags.Has(ChannelFlagObfuscated)
}
Loading