Commit graph

214 commits

Author SHA1 Message Date
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
Matthew Gerstman
d726f93375 Fix issue with trailing slashes in MacOS (#292)
* Fix issue with trailing slashes in MacOS
2016-11-29 19:24:22 -08:00
Chris Rhodes
54e0bd6087 Fix Admin permission calculations. 2016-11-29 19:09:01 -08:00
rytone
3f6a127baa Support for editing messages with embed data (#290) 2016-11-19 20:28:52 -08:00
Chris Rhodes
717c8f2538 Support embed messages. 2016-11-13 22:04:30 -08:00
AI
ed7a451a31 Add support for relationships (#284)
* Add support for relationships

Adds Support for:
  - Sending friend request.
  - Accepting friend request.
  - Getting all the relationships.
  - Getting all the mutual friends with another user.
  - Blocking a user.

**Note:**
  - Bot accounts are not allowed to access the endpoint.
  - May close bwmarrin/discordgo#150

* Implement requested changes

Changed the uint8 declarations to int.

* Change the missed unint8 declaration to int

Missed one instance of unint8 during previous push.
2016-11-08 17:07:04 -08:00
AI
602885488b Fix supprt for reaction endpoint (#283)
- Adds support for deleting the reaction for a given user.
    - Requires MANAGE_MESSAGES permission.
  - Fixes the Sesssion.MessageReactions(...) function.
2016-11-08 11:49:30 -08:00
AI
982cd7d7c3 Add support for the prune endpoint (#282)
* Add support for the prune endpoint

Adds functions to get the amount of members that could be pruned
and to prune members using the prune endpoint.
May close: bwmarrin/discordgo#147

* Deal with the go vet error

Removed the json tags from the unexported struct.
Should pass the tests now.

* Make the PR consistent with the rest of the file.

Removes url building in favour of string concatenation.

* Fix the previous commit

Adds back the result struct.
Converts the uint32 to string.

* Deal with golint comments

* Remove the failing test

Cleans up the uri concatenation.
Removes the failing test due to incorrect permissions.
2016-11-07 16:06:08 -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
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
jonas747
c9d0ac8463 Update comment to UserGuild 2016-09-28 06:43:37 +02: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
cd6971839a Use the everyone role to initialise the permission flags. 2016-09-15 18:51:57 -07:00
soft as HELL
1ab71f4b12 Update GuildRoleEdit 2016-09-11 14:32:58 +03:00
jonas747
9344321923 Update GuildMembers to new format, #218 2016-07-31 17:20:12 +02:00
jonas747
3fd53413de Added userguild struct, and UserGuilds() now returns a userguild 2016-07-29 23:13:55 +02:00
daniel portella
f4b8e2ecc2 added ChannelSendFileWithMessage
kept it backwards compatible so previous apps dont crash with missing field.
2016-07-26 22:18:20 +01:00
Bruce
1dcb081f13 Merge pull request #230 from jonas747/funsplit
Fix ratelimit mutex with url parameters
2016-07-22 14:49:33 -05:00
Bruce Marriner
d28aed7326 Move deprecation comment so lint test passes 2016-07-19 07:45:00 -05:00
jonas747
a504a0adb9 Fix ratelimit mutex with url parameters 2016-07-19 14:18:49 +02:00
Bruce Marriner
ea72e85416 Deprecated Session.UserChannelPermissions
Created new UserChannelPermissions in State.
2016-07-18 17:04:00 -05:00
Bruce Marriner
5501cac820 Retry After Milliseconds, fixes #228 2016-07-11 22:34:34 -05:00
jonas747
092ed4b585 Retry on 502's 2016-07-11 22:30:11 +02:00
RealCodingTeam
12a226f56c huh 2016-06-28 11:10:38 -04:00
Chris Rhodes
b225864d96 Use State for UserChannelPermissions when possible. 2016-06-25 16:22:17 -07:00
Bruce
5f2a99e666 Merge pull request #217 from nstafie/develop
Add function to get a single message by ID
2016-06-17 16:51:34 -05:00
Bruce Marriner
fb663ac348 Linting 2016-06-17 15:44:01 -05:00
Nicholas Stafie
912d26b6bf
Add function to get a single message by ID 2016-06-15 16:37:55 +03:00
Bruce
79d49f86fb Merge pull request #216 from jonas747/userguildsettings
Added UserGuildSettingsEdit
2016-06-15 08:30:01 -05:00
jonas747
f2f2d6430b Added UserGuildSettingsEdit 2016-06-15 12:07:57 +02:00
Bruce Marriner
ae860ce166 Follow Go naming conventions. 2016-06-14 09:04:41 -05:00
Bruce Marriner
323216e171 Update GuildChannelsReorder with new endpoints 2016-06-04 19:50:20 -05:00
Bruce
15f6afb2d7 Merge pull request #211 from jonas747/guildchannelsupdate
Added GuildChannelsReorder
2016-06-04 19:46:18 -05:00
Chris Rhodes
3686cc7ce3 Support many more idioms. 2016-06-03 20:59:35 -07:00
jonas747
ca07a8f9d3 Change GuildChannelsUpdate to GuildChannelsReorder 2016-06-04 04:34:09 +02:00
jonas747
c13c190516 Added GuildChannelsUpdate 2016-05-30 11:51:51 +02:00
Bruce Marriner
dc3b3ea170 Merge branch 'develop' of https://github.com/bwmarrin/Discordgo into develop 2016-05-14 15:59:03 -05:00
Bruce Marriner
65a1d5cf6a Do not set content-type for GuildChannels endpoint 2016-05-14 15:58:39 -05:00
VagantemNumen
a2c826192f
Added check for maximum messages in the slice.
If more than 100 is present send the first 100 in the request and
ignore the rest.
2016-05-14 06:15:50 +05:00
VagantemNumen
35e6225f87
Added ChannelMessagesBulkDelete function.
Requires a channelID and a slice of messageIDs from the channel.
If only on ID is in the slice calls ChannelMessageDelete() internally.
If the slice of IDs is empty do nothing.
2016-05-14 05:27:41 +05:00
Bruce Marriner
ad2aa618dd Expand rate limit locks a little 2016-05-02 09:55:30 -05:00
jonas747
c8b796b223 Add GuildMemberNickname 2016-04-30 23:43:05 +02:00
Bruce Marriner
c8e6cbffcf Merge branch 'develop' of https://github.com/bwmarrin/Discordgo into develop 2016-04-28 21:18:53 -05:00
Bruce
9aaebf7100 Merge pull request #186 from jonas747/develop
Fixed ChannelMessageAck
2016-04-28 18:16:50 -05:00
Bruce Marriner
38c51ce788 Renamed RateLimited to RateLimit
This is more consistant with other event names.
2016-04-28 17:43:41 -05:00
Bruce Marriner
098d7861a4 BREAKING - Added RateLimited event
Renamed RateLimit struct to TooManyRequests{} and added new event struct
RateLimited{} which can be registerd to with AddHandler() and will be
emitted anytime a HTTP 429 is received on the HTTP API.
2016-04-28 17:41:05 -05:00
jonas747
beec086d69 Fixed ChannelMessageAck 2016-04-29 00:40:42 +02:00
Bruce Marriner
a24f9e3d10 Slight better rate limit handling
This improves greatly on the previous rate limit handling
however still needs review and possible improvement.
Please report bugs!
2016-04-28 13:38:20 -05:00
Bruce Marriner
e2e03c3078 Do not allow sending role colors > 0xFFFFFF 2016-04-25 15:19:23 -05:00
Bruce Marriner
11404bc598 Moved resquest api data log to request() func 2016-04-25 12:12:34 -05:00
Bruce Marriner
21739b0274 Add a little spacing when logging rest api requests 2016-04-25 12:05:02 -05:00
Chris Rhodes
8be21fb539 Fix unmarshall error with Invite, improve error logging. 2016-04-23 11:03:07 -07:00
Chris Rhodes
24e7f04e0e Add support for GuildEmbed and GuildIntegration endpoints. 2016-04-22 11:34:04 -07:00
Bruce Marriner
1a672823a2 Lint and Cleanup 2016-04-11 18:54:19 -05:00
jonas747
d1f25d8561 Changed fmt.Print to log.Print 2016-03-21 17:13:39 +01:00
Bruce Marriner
f9bf5fb040 Added HTTP 201 to Request and gofmt :) 2016-03-11 13:43:45 -06:00
abalabahaha
539b9d203f Fix UserChannelPermissions 2016-03-04 05:50:11 -08:00
abalabahaha
cd24674ebb Added UserChannelPermissions function 2016-03-04 08:07:57 +00:00
noisypixy
ce9840f8c4 Constant missing in Go < 1.6 2016-03-02 21:13:53 -04:30
noisypixy
6c820412cf Replace HTTP status codes for net/http constants. 2016-03-02 19:26:00 -04:30
Nicholas Stafie
58fe658fa5 Add VerificationLevel value consts and a typedef for int 2016-02-27 00:28:05 +02:00
Bruce
226df093f6 Merge pull request #132 from nstafie/develop
BREAKING -- Add support for setting guild region and verification level
2016-02-26 14:58:56 -06:00
Bruce Marriner
a45e493e1f Add limit max values in comments 2016-02-24 23:29:59 -06:00
Nicholas Stafie
f5ac3b10bf
Better document GuildEdit arguments 2016-02-25 00:31:51 +02:00
Nicholas Stafie
1a844d697d Add support for guild region and verification level 2016-02-25 00:27:13 +02:00
Bruce
f67b8152cf Merge pull request #127 from iopred/docs
BREAKING -- Change API for ChannelMessages to accept Message ID's as strings. Fixes #120
2016-02-20 17:33:59 -06:00
Bruce Marriner
c3cb8469bb Removed GuildInviteCreate function. 2016-02-20 17:03:07 -06:00
Chris Rhodes
50b7bdd6ff Change API for ChannelMessages to accept Message ID's as strings. Fixes #120 2016-02-20 14:21:25 -08:00
Bruce Marriner
e1a88003e6 Will use current rate limit method for forseable future, closes #12 2016-02-20 15:56:07 -06:00
Bruce Marriner
e0010ab0ba Add limit and offset to GuildMembers, closes #105 2016-02-19 00:42:52 -06:00
Bruce
f801d95c14 Merge pull request #114 from iopred/guilds
Partial support new GuildMember endpoints.
2016-02-18 21:56:07 -06:00
Chris Rhodes
ab2ab944bb 👌 2016-02-18 00:01:23 -08:00
Bruce Marriner
22bb771120 Added func GuildMemberMove, closes #92 2016-02-18 00:39:53 -06:00
Chris Rhodes
0ea10a300b Merge branch 'develop' into guilds 2016-02-15 20:20:53 -08:00
Bruce Marriner
aebfb09719 Baby Linting. 2016-02-15 21:50:41 -06:00
Bruce
0dea8696c0 Merge pull request #110 from iopred/guildleave
Support new guild leave API.
2016-02-15 20:59:15 -06:00
Chris Rhodes
32dc320386 👌 2016-02-15 18:39:43 -08:00
Chris Rhodes
0bd7fbf668 Support new leave API. 2016-02-15 18:38:15 -08:00
Chris Rhodes
64af0e5f4a Support TTS. Closes #67 2016-02-13 18:28:29 -08:00
Chris Rhodes
ddc830a071 Add new guild endpoints. 2016-02-13 10:28:34 -08:00
Chris Rhodes
4a9689f953 Cleanup 2016-02-11 21:39:18 -08:00
Chris Rhodes
0344155b17 Support sending files. 2016-02-11 21:36:19 -08:00
Bruce Marriner
af52a8c822 Fix type, thanks KuroiKitsu 2016-02-07 20:47:33 -06:00
Bruce Marriner
edc09778a7 Linting. 2016-01-28 08:36:09 -06:00
Bruce Marriner
53db54ea8c Comment. 2016-01-27 23:41:44 -06:00
Bruce Marriner
21272c5460 no formatting directive in Errorf call 2016-01-27 23:34:57 -06:00
Chris Rhodes
5aab9dc685 Use an array of role ids 2016-01-27 09:45:14 -08:00
Chris Rhodes
b0188cd71e Support GuildMemberEdit api. 2016-01-27 01:37:43 -08:00
Bruce Marriner
654c78a419 Renamed GUILD_MEMBER_DEL endpoint to just GUILD_MEMBER 2016-01-19 08:56:48 -06:00
Chris Rhodes
1d9f97e283 Update New to allow an auth token to be specified. 2016-01-17 14:17:51 -08:00
Chris Rhodes
e2ab871e12 Fix colliding vars. 2016-01-17 11:59:22 -08:00
Chris Rhodes
3561ad1fa6 Add a LoginWithToken method which is a cheaper way to login. Closes #89.
Eventually we should consider allowing Login/LoginWithToken to mutate
s.Token, it would probably simplify the API a bit.
2016-01-17 11:13:02 -08:00