1
0
Fork 0
mirror of https://github.com/diamondburned/arikawa.git synced 2025-12-08 21:08:28 +00:00

Compare commits

...

5 commits

Author SHA1 Message Date
Scott 5287f0c177
Merge 29f0a1ac5b into 374d28cbf6 2025-09-26 23:29:20 +05:30
Ayyan 374d28cbf6
httputil: Add NewClientWithDriver function (#487)
* feat(httputil): add NewFromDriverClient function
* refactor: rename to NewClientWithDriver
2025-09-22 18:41:54 -07:00
Ayyan c3dc0bc002
gateway: mark Intents field as omitempty in IdentifyCommand (#486) 2025-09-20 12:17:29 -07:00
Ayyan 3a8d18dcb7
gateway: add Capabilities bitmask (#485)
* feat(gateway): add Capabilities bitmask

* fix(gateway): skip
2025-09-20 12:16:55 -07:00
twoscott 29f0a1ac5b discord: Support GIF banner URLs 2025-03-26 21:37:18 +00:00
3 changed files with 36 additions and 7 deletions

View file

@ -142,15 +142,16 @@ func (g Guild) IconURLWithType(t ImageType) string {
}
// BannerURL returns the URL to the banner, which is the image on top of the
// channels list. This will always return a link to a PNG file.
// channels list. Auto detects a suitable image type. An empty string is
// returned if the guild has no banner.
func (g Guild) BannerURL() string {
return g.BannerURLWithType(PNGImage)
return g.BannerURLWithType(AutoImage)
}
// BannerURLWithType returns the URL to the banner, which is the image on top
// of the channels list using the passed image type.
//
// Supported ImageTypes: PNG, JPEG, WebP
// Supported ImageTypes: PNG, JPEG, WebP, GIF
func (g Guild) BannerURLWithType(t ImageType) string {
if g.Banner == "" {
return ""

View file

@ -113,6 +113,31 @@ type (
IdentifyProperties map[IdentifyPropertyKey]any
)
// https://docs.discord.food/topics/gateway#gateway-capabilities
type Capabilities uint
const (
LazyUserNotes Capabilities = 1 << iota
NoAffineUserIDs
VersionedReadStates
VersionedUserGuildSetttings
DedupeUserObjects
// Requires DedupeUserObjects
PrioritizedReadyPayload
MultipleGuildExperimentPopulations
NonChannelReadStates
AuthTokenRefresh
UserSettingsProto
ClientStateV2
PassiveGuildUpdate
AutoCallConnect
DebounceMessageReactions
// Supersedes PassiveGuildUpdate
PassiveGuildUpdateV2
_
AutoLobbyConnect
)
// IdentifyCommand is a command for Op 2. It is the struct for a data that's
// sent over in an Identify command.
type IdentifyCommand struct {
@ -132,8 +157,7 @@ type IdentifyCommand struct {
// Capabilities defines the client's capabilities when connecting to the
// gateway with a user account. Bot accounts should NOT touch this field.
// The official client sets this at 125 at the time of this commit.
Capabilities int `json:"capabilities,omitempty"`
Capabilities Capabilities `json:"capabilities,omitempty"`
// Intents specifies which groups of events the gateway
// connection will receive.
//
@ -142,7 +166,7 @@ type IdentifyCommand struct {
// For bot accounts, it must not be nil, and
// Gateway.AddIntents(0) can be used if you want to
// specify no intents.
Intents option.Uint `json:"intents"`
Intents option.Uint `json:"intents,omitempty"`
}
// DefaultIdentifyCommand creates a default IdentifyCommand with the given token.

View file

@ -44,8 +44,12 @@ type Client struct {
}
func NewClient() *Client {
return NewClientWithDriver(httpdriver.NewClient())
}
func NewClientWithDriver(driver httpdriver.Client) *Client {
return &Client{
Client: httpdriver.NewClient(),
Client: driver,
SchemaEncoder: &DefaultSchema{},
Retries: Retries,
context: context.Background(),