Commit graph

171 commits

Author SHA1 Message Date
vim2meta
0e42acc5f5
Update structs.go 2017-11-19 10:13:54 -05:00
Lukas Breuer
a838552b22
Remove XKCDPass Invites
This feature has been removed from the API quite some time ago.
2017-11-11 18:40:05 +01:00
Nicholas Hanley
43bf6cf0d0 Fix TimeStamps unmarshalling (#474) (#475) 2017-11-08 18:39:26 -08:00
Bruce Marriner
8c52d97c1e Linting. 2017-11-08 19:54:04 +00:00
Cory Ory
8737777ce7 Implement Raw sending of status (Rich Presence and Online Status) (#462)
* Added ability to change the online status

* Add structs for rick presence implementation

* Refractor and publicise UpdateStatusData

* Add UpdateStatusComplex for raw status data sending

* Case gameType to int, stopped it compiling

* Might want to gofmt.

Doesn't do it on save because Gogland removed it and their new thing I
can't make sense of.

* Revert "Added ability to change the online status"

This reverts commit 235cd15a8eebbec070cb95a5853295387bceae1c.

* Change gametypeto match

* Move RLock to UpdateStatusComplex
2017-10-22 14:08:08 -07:00
Erik McClure
97a510ca0a Add rate limit buffering support (#430)
* Fix #406: reconnect() can be called while still connected

* Add memberMap to speed up member queries

* Fix error return value and remove deletion

* Fix GuildAdd member map initialization edge case

* Add rate limit buffering support

- Break request into requestInner
- Break LockBucket into LockBucketObject
- Change getBucket to GetBucket so it can be externally accessed
- Add RequestBuffer interface
- Add RequestBuffer pointer to Bucket struct
- Add RequestPostWithBuffer() function to Session

* Remove internal implementation, export ratelimiter instead
2017-10-07 10:54:46 -07:00
jD91mZM2
9da2c9e76a Added GameType (#435)
* Added GameType

* Delete useless function
2017-10-07 10:54:04 -07:00
Sebastian Winkler
7b6a91ac04 adds parent_id to channel struct (#448) 2017-09-22 07:42:59 -07:00
robbix1206
24dcabd55d Fix #443 2017-09-21 00:32:49 +02:00
Bruce
06b35cfe24 Linting. 2017-09-03 20:01:46 +00:00
Jonas is my name
308d058bf1 Fix presence update after breaking API change (#427) 2017-08-17 06:55:02 -07:00
tsudoko
55d995899e Add NSFW channel field (#419) 2017-07-31 16:48:29 -07:00
Jonas is my name
ba1095f3e1 Add error code constants (#418)
* Add error code constants

* Woops forgot a space
2017-07-30 19:10:41 -07:00
Jonas is my name
b4faca0f46 Add option for calling event handlers sync or async (#416)
* Add option for calling event handlers sync or async

* Small doc update
2017-07-29 17:32:20 -07:00
legolord208
7bb0965a6f Updated to v6 (fixes #408) (#410)
* Updated to v6

* Unified websocket and REST version
2017-07-22 06:17:39 -07:00
jonas747
9d3cd03314 Add GatewayBot 2017-07-10 18:31:26 +02:00
Erik McClure
bb4b96e26d Add heartbeat ACK response and error handling (#396)
* Add heartbeat ACK response and error handling

- Error when sending a heartbeat now triggers a reconnection
- Op7 now triggers a reconnection
- Session now tracks the last heartbeat ACK that was recieved. If the
last ACK is more than FailedHeartbeatAcks*heartbeatinterval in the past,
this is treated as a dead connection and a reconnection is forced.

* Address @iopred comments
2017-06-27 20:52:59 -07:00
AAAAAAAAAAA
eed1d20f1a Fix presence unmarshal with game names as numbers (#381)
* Game name is also not validated on the server

* Use json.Number instead
2017-05-08 08:32:00 -07:00
legolord208
25c8012990 Added missing permission constants (#378) 2017-05-08 06:43:50 -07:00
LEGOlord208
65f0cb9f73 Arise error when user has 2FA (#359)
* Arise error when user has 2FA

* Fixed error message

* Removed ticket
2017-04-18 21:35:17 -07:00
LEGOlord208
7bcc0fbaca Added more fields (#354)
* Added more fields

* Fixed error

* Yep ok
2017-04-11 21:51:24 -07:00
Ammar Bandukwala
52ad9e2feb add String() method to User (#350)
* add String() method to User

* put User def in it's own file

* remove usage of t.Run for support w/ older Go versions
2017-04-07 08:19:48 -07:00
Alexander
2e65ecdbb9 Fixed casing for JSON tag for Avatar field on User struct (#339)
When marshalling a user back to JSON, this results in inconsistently cased JSON fields.
2017-03-16 07:05:54 -10:00
jonas747
2d50fc197f Fix racey heartbeat sequence (#303)
* Fix racey heartbeat sequence

* Change all sequence fields to int64
2016-12-28 11:59:02 -08:00
jonas747
edc3213ffb Reuse http client, and export it (#301) 2016-12-25 16:23:11 -08:00
jonas747
3fdc5f373d Add "PermissionAdministrator" to "PermissionAll" (#302) 2016-12-24 11:36:14 -08:00
Bruce Marriner
9e777a083b Linting. 2016-12-11 12:45:34 -06:00
Bruce Marriner
68a784327f Merge branch 'develop' of https://github.com/bwmarrin/discordgo into develop 2016-12-11 12:24:29 -06:00
Bruce Marriner
c541df15df Removed dead code. 2016-12-11 12:24:17 -06:00
Chris Rhodes
db2f9eb29b Support getting the color of a user. (#299) 2016-12-10 21:37:11 -08:00
Chris Rhodes
36601253a4 Remove use of reflect.
This introduces gogenerate'ed EventHandlers from the files in events.go

This also adds support for AddHandlerOnce.
2016-12-03 23:31:07 -08:00
AI
2092185ec5 Implement support for new member role endpoint (#289)
Implements support for the new member role add and delete endpoint
hammerandchisel/discord-api-docs#179
2016-11-30 08:57:22 -08:00
Chris Rhodes
b7c7e60fd5 Fix presence unmarshalling as the values are inconsistent from Discord. (#287) 2016-11-12 11:59:51 -08:00
jonas747
5d1dd7ddac Add nick and roles to Presence 2016-11-07 15:53:54 -08:00
jonas747
f0cb678022 Add member_count to guild 2016-11-06 09:09:54 -08:00
jonas747
56b19073d3 Ratelimits (#273)
* Added ratelimiter

Handles the new ratelimit headers
 - X-RateLimit-Remaining
 - X-RateLimit-Reset
 - X-RateLimit-Global

* Pad only reset time with a second

* Moved ratelimiter out of internal package

* Change for loop, move global ratelimit check inside sleep check

* Moved ratelimiter locking to getBucket

* Added global bucket

* Changed how bucket id's are done

Now each request function will need to specify the bucket id if the
endpoint contains minor variables

* Allow empty bucketID in request

* Remove some uneeded Endpoint* function calls

* Added test for global ratelimits

* Fixed a silly little mistake causing incorrect ratelimits

* Update test comments, Fixed treating a endpoint as 2 in ratelimiting

* Use date header from discord instead of relying on sys time sync

* Update all REST functions to use RequestWithBucketID

* Embed mutex into bucket

* Added webhook and reaction buckets
2016-11-04 08:07:22 -07:00
Chris Rhodes
5ef835fc80 Fix GuildBans. Fixes #263 2016-11-03 22:39:55 -07:00
Chris Rhodes
c96162c425 Add support for Message Reactions. 2016-11-03 22:07:06 -07:00
Chris Rhodes
84a92549bc Merge pull request #274 from iopred/develop
Add Webhook support.
2016-11-03 19:47:15 -07:00
Chris Rhodes
ee3e500749 Add webhook support. 2016-11-03 19:41:57 -07:00
jonas747
9187964002 Added custom rest error type (#271) 2016-10-13 19:13:42 -07:00
jonas747
9f24531220 Update ChannelMessageAck because of api changes (#270) 2016-10-13 12:42:05 -07:00
robbix1206
af3fe4842a Add Support of changing user status (#258)
Add Support of changing user status
2016-09-28 10:04:37 -07:00
Chris Rhodes
581f6e7867 Merge pull request #256 from jonas747/request-members
Added RequestGuildMembers to request guild members from the gateway
2016-09-27 22:08:36 -07:00
Chris Rhodes
ef83d2098f Merge pull request #236 from jonas747/split
Added UserGuild struct, UserGuilds now returns a UserGuild slice
2016-09-27 22:04:37 -07:00
Chris Rhodes
42e934d3b2 Merge pull request #246 from robbix1206/timestamps
Timestamps
2016-09-27 21:22:07 -07:00
Chris Rhodes
8bd3f75441 Merge pull request #227 from jonas747/retry
Retry on 502's
2016-09-27 21:19:25 -07:00
Chris Rhodes
9b6b657083 Merge pull request #249 from iopred/develop
Correctly merge GUILD_UPDATE events. Closes #242
2016-09-27 21:15:03 -07:00
jonas747
9c7c9d3fd2 Added RequestGuildMembers to request guild members from the gateway 2016-09-25 21:29:59 +02:00
soft as HELL
ef3cd76e3d Add mentionable to Role struct 2016-09-11 14:32:41 +03:00