1
0
Fork 0
mirror of https://github.com/diamondburned/arikawa.git synced 2024-11-16 11:54:29 +00:00
Commit graph

975 commits

Author SHA1 Message Date
diamondburned c9dd51aeb6 Store: Fixed defaultstore out of bound error 2020-12-18 22:33:11 -08:00
diamondburned 88911a7d11 Store: Fixed defaultstore not accepting GroupDM channels 2020-12-18 22:18:04 -08:00
diamondburned 9df396bb7f Bot: Fixed unable to call Plumbed method by command 2020-12-18 15:00:21 -08:00
diamondburned 82006b622b CI: Bumped Dismock 2020-12-16 15:18:05 -08:00
diamondburned fdeff18f5d API: Fix integration test 2020-12-16 14:51:32 -08:00
diamondburned 78a76ecb42 Discord: Revert "APIEmoji shouldn't be path-encoded"
This reverts commit dae2a0ffc1.
2020-12-16 14:51:00 -08:00
diamondburned dae2a0ffc1 Discord: APIEmoji shouldn't be path-encoded 2020-12-16 14:30:00 -08:00
diamondburned 808dfb28bb httputil: Fixed Multipart writer not closing 2020-12-16 14:08:31 -08:00
diamondburned 1483dd71d8 Webhook: Shorter constructor function names 2020-12-16 13:22:26 -08:00
diamondburned 868825da7d Webhook: Breaking fix redundant type names 2020-12-16 13:17:56 -08:00
diamondburned 525d0bb3f6 API: Move ExecuteWebhookData, add package sendpart for uploads
This commit moved ExecuteWebhookData from package api to package webhook
inside package api. This change required splitting the multipart
abstractions away from package api, so they are now inside package
sendpart in utils.

This commit will break code that uploads anything, as the type name is
now sendpart.File from api.SendMessageFile. The behavior should be the
same as before.
2020-12-16 13:11:11 -08:00
diamondburned 91dc41e388 API: Expose Max fetch constants
This commit exposes the Max fetch constants to allow package users to
externally reimplement any part of the API abstractions without having
to redeclare more constants.
2020-12-16 12:26:25 -08:00
diamondburned 86756dfbaa Discord: Added typed APIEmoji
This commit adds a new discord.APIEmoji type along with changes to
certain methods in package API that utilizes this new type. Similarly to
typed snowflakes, this should help reduce mistakes when using the React
functions.
2020-12-16 12:24:23 -08:00
Maximilian von Lindern f887060983
Webhook: Add support for message edit and delete (#180)
* Webhook: Add support for message edit and delete
* Webhook: remove global functions
* Webhook: move package Webhook into api/
* Webhook: Moved (unused in API) data struct to package webhook

Co-authored-by: diamondburned <datutbrus@gmail.com>
2020-12-16 12:11:11 -08:00
diamondburned 9a820c3749 CI: Update Dismock 2020-12-15 14:16:12 -08:00
mavolin 7a7a56d613 State: remove redundant error return from NewFromSession 2020-12-15 08:32:18 -08:00
diamondburned 826b90a5f3 Bot: Start to add IntentGuilds for better caching 2020-12-14 14:54:56 -08:00
diamondburned b801e46760 Bot: Optional command when plumbed in Help, no more extra space 2020-12-14 14:18:04 -08:00
diamondburned 66c95761a7 Bot: Getter for Plumbed and Help generation fix 2020-12-14 13:43:36 -08:00
diamondburned d65807ce15 API: Potential rate limit fix for reactions 2020-12-11 17:58:52 -08:00
diamondburned 43e5eeafde Fixed FUNDING.yml 2020-12-11 16:50:47 -08:00
diamondburned 24a845ec11 Create FUNDING.yml 2020-12-11 16:50:20 -08:00
mavolin 9911a3d662 State: fix caching not working properly on user accounts 2020-12-08 11:50:35 -08:00
diamondburned 5e2af90fd0 Gateway: Rollback weird user changes 2020-12-01 18:07:42 -08:00
diamondburned 5a76b21ecf wsutil: Fixed irregular close 1000 error 2020-11-30 21:49:55 -08:00
diamondburned b8994ed0da Voice: Remove state-keeping of sessions
This commit gets rid of all the code that previously managed different
voice sessions in different guilds. This is because there is rarely ever
a need for this, and most bots that need this could do their own
keeping.

This change, although removes some features off of the package, adds a
lot of clarity on what to do exactly when it comes to connecting to a
voice channel.

In order to make the migration process a bit easier, an example has been
added which guides through using the voice.Session API.
2020-11-30 19:12:20 -08:00
diamondburned 6727f0e728 Voice: Fixed voice tests for new JoinChannel 2020-11-30 17:04:11 -08:00
diamondburned 4df72dc891 Voice: JoinChannel no longer takes in an extra GuildID 2020-11-30 16:58:28 -08:00
diamondburned 1463d6e675 Voice: Rename NewVoice... to New 2020-11-30 16:46:43 -08:00
diamondburned 0d427cab71 Voice: Allow New without intents 2020-11-30 16:42:26 -08:00
diamondburned 29582d6131 Bot: Allow both plumbed and normal commands
This commit changes the existing Plumb behavior to allow normal commands
to coexist along a plumbed command. This change allows certain behaviors
that would otherwise require manually switching on arguments.

An example use case of this change would be having a default behavior
when a subcommand call doesn't have a command name. For example, given
this code:

    func (b *Banana) Setup(sub *bot.Subcommand) { sub.SetPlumb(b.Help) }

    func (b *Banana) Green(*gateway.MessageCreateEvent) {}
    func (b *Banana) Help(*gateway.MessageCreateEvent)  {}

The subcommand "banana" could have its own help when it's called as
"!banana", while "!banana green" would trigger another handler.
2020-11-30 14:26:53 -08:00
diamondburned d6695d228b CI: Updated Dismock version 2020-11-30 13:13:55 -08:00
diamondburned f4860731fe State: Fixed defaultstore.Message oob crash 2020-11-29 18:21:33 -08:00
Tyler Stuyfzand 75d6be7a9d
Voice: Add receive capability (#174)
* Resolve issue with copied v1 struct

* Speaking event patches, support Client Connect/Disconnect events

* Remove extra debug in heart.go

* Initial voice packet reading

* Resolve unallocated slices, use a static slice/array for decryption, split version/type

* Use separate slice for recvOpus, check return of secretbox.Open, and use constant for header size

* Update missing reference to packetHeaderSize

* Resolve decryption issues, add ReadPacket to session

* Update documentation for recvBuf/recvOpus

* Update comment for recvPacket's array
2020-11-29 17:32:18 -08:00
diamondburned afc87adbae Bot: Refactored accordingly to State's new Store API 2020-11-29 17:19:59 -08:00
diamondburned e0adbfab35 State: Expose NoopStore implementation type 2020-11-29 17:19:47 -08:00
diamondburned 44909beb5b Moreatomic: Fixed LoadOrStore sentinel bug 2020-11-29 17:19:05 -08:00
diamondburned 56d18a8972 CI: Reduce test output verbosity 2020-11-29 17:12:25 -08:00
diamondburned c6679dc52c State: Separate Store into smaller interfaces, Cabinet API
This commit refactors the Store interface in State into smaller
interfaces in package store. These interfaces are combined into one
structure called a "Cabinet". The default implementation of those
interfaces have been rewritten in package defaultstore, while the old
no-op implementation stays with the store package.

This commit also omitted several state handlers for user events, as it
is unclear what they are actually structured like.
2020-11-29 16:57:58 -08:00
diamondburned a2333996a2 Gateway: Presence to contain user and guild fields
This commit changes the gateway.Presence struct to be similar to commits
prior to the last refactor, that is, the struct would have the User and
GuildID fields. This is done so it's easier to store them.
2020-11-28 22:36:33 -08:00
diamondburned 6ef093eb98 Gateway: Refactor, v8 user struct updates
This commit refactored several structures from package discord to be in
package gateway. Those structures are mostly presence ones, which per
official documentation has a lot more to do with the Gateway API than
the REST API or anything else.

This commit also renamed several global variables to have a more
consistent and obvious name.

As of v8, the user API has had a lot of minor and some major changes,
especially regarding its Ready event API. The most significant change is
the addition of the ReadySupplemental event as well as several changes
to the Ready field itself.

All of these changes above are breaking, and they have already broken
the state package. These breaking changes will be addressed in other
packages by the next commit.
2020-11-28 17:22:03 -08:00
Maximilian von Lindern 0a8b24339b
API: Added timeout if deadline is after rate limit (#173)
* Rate: don't sleep if sleep exceeds context deadline

* Httputil: add Client.Timeout

* Bot: set default API timeout to 5 minutes

* Rate: reduce calls to time.Now in Acquire

* API: Optimize to use deadline instead of recalculating

Co-authored-by: diamondburned <datutbrus@gmail.com>
2020-11-25 12:08:42 -08:00
diamondburned ba1200059c Discord: Fixed regression of unmarshaling Permission in Guild 2020-11-22 15:14:14 -08:00
diamondburned e755ea4260 *: Updated dependencies and dismock CI tests 2020-11-22 15:04:36 -08:00
mavolin b9d7ba4476 Option: fix nullable types getting serialized to nil on JSON null 2020-11-22 09:33:33 -08:00
mavolin fc5d10ced8 Discord: optimize struct sizes; add missing fields 2020-11-22 09:16:24 -08:00
mavolin a616eae7f0 API: rename ServiceX constants to XService 2020-11-22 09:14:07 -08:00
mavolin 0ec646e2a6 Discord: add Discord Service 2020-11-22 09:14:07 -08:00
mavolin da8de00e75 Discord: remove unnecessary option types 2020-11-22 09:14:07 -08:00
mavolin eb528da31d Discord: add missing Integration fields 2020-11-22 09:14:07 -08:00