aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix heartbeat checkingZeyla Hellyer2018-03-272-22/+22
| | | | | If a heartbeat acknowledgement is not received, then the shard should restart.
* Fix help precendenceacdenisSK2018-03-251-3/+4
|
* Change the way ids and some enums are made (#295)Leah2018-03-2318-247/+365
| | | | | This makes them easier to be found by tools like rls. Also update struct inits to use the shorthand version for `x: x`.
* Fix Create(Embed/Message) to be consistentacdenisSK2018-03-202-13/+13
|
* Add no_run to doctests that initialize a Client (#293)Maiddog2018-03-183-22/+22
|
* Remove useless clones (#292)Maiddog2018-03-174-12/+12
|
* Fix no-cache standardframework compilation (#290)Lakelezz2018-03-155-17/+25
|
* Backport parts of 7d162b9Kyle Simpson2018-03-054-10/+109
| | | | | | | | | | | | | | | | | * Backport parts of 7d162b9. * Silent frame fixes. * Read-only playback position. * Opus Softclip for audio mixing. * Documentation for Audio structs. Not included (for now): * Bitrate control * Gutting/rework of Voice OpCodes, Heartbeats * Opus stream mixing * Minor adjustments due to manual edits.
* Support sending files with an embed (#285)Brandon Lucier2018-03-042-5/+5
|
* Properly check if the input is emptyacdenisSK2018-02-241-7/+31
|
* Pad user discriminators in content_safe to 4 digitsMegumi Sonoda2018-02-231-1/+1
| | | | This brings the function in line with the 'tag' function for User models, and with the official Discord app experience and other libraries.
* Drop implementation for ffmpeg containerKyle Simpson2018-02-201-0/+8
|
* Add documentation to `EventHandler`acdenisSK2018-02-191-2/+205
|
* Add `unrecognised_command` (#276)Lakelezz2018-02-152-2/+39
|
* Add 'Get Guild Vanity Url' endpointZeyla Hellyer2018-02-095-0/+55
| | | | Docs: <https://github.com/discordapp/discord-api-docs/commit/98f6643703012d2f3780ba730ce1191120f85dcd>
* Generalise `image`, `thumbnail`, `url` and `attachment`acdenisSK2018-02-081-8/+8
|
* Partially revert the video url changeacdenisSK2018-02-021-6/+0
|
* Inline simple url propertiesacdenisSK2018-02-021-0/+3
|
* Add video url specifier for CreateEmbed (#269)Andrej2018-02-021-11/+14
|
* Fix broken docs links caused by model mod changesZeyla Hellyer2018-01-3127-195/+178
| | | | | Fix broken links caused by the `model` module changes in v0.5.0, which split up the module into sub-modules for better organization.
* Fix customised help related docs (#267)Lakelezz2018-01-311-2/+2
|
* Multiple audio stream playback, volume control, pausingKyle Simpson2018-01-316-29/+174
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix Speaking state, use latest voice API version * Speaking state would remain stuck on after playing particularly long stretches of audio. So far as I can tell, playing 5 frames of silence BEFORE changing the state seems to do the trick. * Added new constant to make sure the library uses v3 of the voice api, which it is written for. * Heartbeat interval adjusted by * .75 as recommended by Discord. * Initial version of new Audio wrapper. * Single audio file case, as before.. * Loop over all available audio samples. * Combine audio streams, account for volume. * Cheaper explicit Opus silence frames. As per Discord's recommendation, use a well-known 3-byte silence frame when needed. * A bit of cleanup Cleanup some of the code, rename some short-form fields to longer forms (e.g. `s/src/source`), and remove a breaking change. `Handler::play` was changed to return `LockedAudio` instead of `()`. If someone were to rely on `Handler::play` returning `()`, the return type change would break their code. Instead, this functionality has been added to a new `Handler::play_returning` function.
* Fix case insensitivity for aliases (#262)Lakelezz2018-01-311-6/+7
|
* Remove an `Into<Option<T>>`Zeyla Hellyer2018-01-301-2/+2
| | | | | Technically a bugfix because this made it sort of unusable; instead, users need to explicitly `Some(Box::new(receiver))`.
* Reduce number of clones in the libraryZeyla Hellyer2018-01-273-18/+20
|
* Correctly set role's position on new rolesZeyla Hellyer2018-01-271-1/+7
| | | | | | When creating a new role, correctly set its position if a position was specified. This is because the "Create Role" endpoint no longer accepts a `position` key.
* Add functions to reorder a guild's channelsZeyla Hellyer2018-01-273-0/+44
| | | | | Add `http::edit_guild_channel_positions`, `Guild::reorder_channels`, and `GuildId::reorder_channels`.
* Check message ID count in `delete_messages`Zeyla Hellyer2018-01-274-13/+29
| | | | | | In models' `delete_messages` methods, check the number of messages being deleted. If 0 or more than 100, return a `ModelError::BulkDeleteAmount`, as this amount would result in an invalid request.
* Add `Message::member`Zeyla Hellyer2018-01-271-0/+13
| | | | | | | | | Add a `member` function on `model::channel::Message` to retrieve a clone of the author's Member instance in the channel's guild. If the message was not sent in a guild, the guild could not be found in the cache, or the member instance could not be found in the cache, then `None` is returned.
* Account for guild owners in member hierarchy checkZeyla Hellyer2018-01-271-0/+15
| | | | | | When using `Guild::greater_member_hierarchy`, check if both user IDs are the same (returning None) or if one of them is the guild owner, in which case the guild owner's ID is returned.
* Add a way to register middleware functions directly in `CreateCommand`acdenisSK2018-01-253-7/+74
|
* Fix voice websocket loop terminationNikita Pekin2018-01-241-1/+1
| | | | | | | The websocket loop for voice events is terminated whenever a websocket message is successfully sent. This is caused by a bug that was introduced in https://github.com/zeyla/serenity/commit/c8536c111117f26833fb1bceff734ac1abc55479#diff-6a8a0bad68abd05790cdc2c2ba043ec6L457, due to an improperly implemented clippy lint.
* Strip RTP header extensions from voice streamNikita Pekin2018-01-241-2/+24
| | | | | Add code to strip RTP header extensions from an incoming voice stream, if they are present. See https://tools.ietf.org/html/rfc5285 for more info.
* Trim after splitting at the mention-end. (#256)Lakelezz2018-01-221-2/+3
|
* Fix skipping for emote prefixes (#255)Uninteresting Account2018-01-211-3/+2
|
* Bump to v0.5.0v0.5.0Zeyla Hellyer2018-01-201-1/+1
|
* Fix compilation for some feature combinationsZeyla Hellyer2018-01-203-1/+7
|
* Fix no-cache compilationacdenisSK2018-01-201-0/+1
|
* Fix multibyte character based prefixes (#253)Uninteresting Account2018-01-202-10/+11
|
* Fix doc comment indentationZeyla Hellyer2018-01-191-1/+1
|
* Add an `EditMessage` builderZeyla Hellyer2018-01-188-36/+79
| | | | | | When editing messages, not all fields are applicable. Attachments, TTS, and reactions are not applicable. To help with this distinction, separate message editing into a different builder.
* Update readme exampleZeyla Hellyer2018-01-181-4/+7
|
* Expose a client voice managerZeyla Hellyer2018-01-1810-207/+289
|
* Use an InterMessage to communicate over gatewayZeyla Hellyer2018-01-1812-35/+71
| | | | | | | Instead of communicating over the gateway in a split form of a `serde_json::Value` or a `client::bridge::gateway::ShardClientMessage`, wrap them both into a single enum for better interaction between the client, gateway, and voice modules.
* Create unset member instances on presence updatesZeyla Hellyer2018-01-171-0/+19
| | | | | | | | If a presence update for a guild comes in and their associated member instance is not present (e.g. in a large guild that wasn't member chunked), then create one with the infomation known out of the presence update. This includes their user information, guild ID, nickname, and roles, but not their `deaf`, `joined_at`, and `mute` state.
* Define `A` only onceacdenisSK2018-01-111-20/+10
|
* Fix ShardManager doctestZeyla Hellyer2018-01-101-11/+14
|
* Revert "Add `Client::user_id`"Zeyla Hellyer2018-01-101-9/+3
| | | | | | | | | | | This reverts commit 062ea86d5b0d9932207636d4a44a5357b079e79a. This change had the unintended side-effect of making tests with the Client impossible without hitting Discord's REST API for every test (even worse, while unauthorized). Knowing the user's ID on creation isn't _too_ important, and what was being done with that knowledge can be deferred to connection start.
* Simplify ShardManager creationZeyla Hellyer2018-01-103-119/+54
| | | | | | Instead of creating different `new` functions for every bridged feature combination, accept a struct of options. Structs can have conditional fields, unlike functions which can not have conditional arguments.
* Fix no-model compiler warningsZeyla Hellyer2018-01-103-3/+3
|