Commit Graph

402 Commits

Author SHA1 Message Date
kozabrada123 743f106ec6
Miscellaneous fixes (#514)
- fix `PATCH /users/@me` - It incorrectly returned a required password error, even if the current password was set
- fix `GET /users/@me/guilds` - It incorrectly sent body parameters instead of query ones
- don't log debug! for every successful ratelimited request - use trace! so it's less spamy
- update the max expected compression ratio (several times) from 20 to 200. let's hope that will be enough
- fix deserialization errors relating to guild folders in user settings
- fix a panic in `SqlxBitFlags` if there are extra flags. It now truncates them
- update `chorus_macros` to 0.4.1 (due to the above fix)
- log (trace!) event data if we fail to parse it or it's unrecognised, for debugging purposes
- fix a deserialization error in the `MessageACK` event
- fix `public_flags` in user objects not being `PublicFlags` bitflags
2024-06-28 14:05:59 +02:00
kozabrada123 89333d6353
Implement gateway options, zlib-stream compression (#508)
* feat: add GatewayOptions

* feat: implement zlib-stream compression

This also changes how gateway messages work.
Now each gateway backend converts its message into an
intermediary RawGatewayMessage, from which we inflate
and parse GatewayMessages.

Thanks to ByteAlex and their zlib-stream-rs crate, which
helped me understand how to parse a compressed websocket stream
2024-06-23 17:23:13 +02:00
kozabrada123 03f1e7d983 Refactor / fix login and register (#495)
Change login and register to only use one ChorusUser object, change the
api of related methods which were also somewhat ugly
2024-05-05 14:43:23 +02:00
kozabrada123 74d6785e50 Primitive voice implementation (feature/voice) (#457)
* Add Webrtc Identify & Ready

* Add more webrtc typings

* Attempt an untested voice gateway implementation

* fmt

* Merge with main

* Same allow as for voice as normal gateway

* Test error observer

* Minor updates

* More derives

* Even more derives

* Small types update

* e

* Minor doc fixes

* Modernise voice gateway

* Add default impl for voicegatewayerror

* Make voice event fields pub

* Event updates via the scientific method

* ??

* Fix bad request in voice gateway init

* Voice gateway updates

* Fix error failing to 'deserialize' properly

* Update voice identify

* Clarify FIXME related to #430

* Update to v7

* Create seperate voice_gateway.rs and voice_udp.rs

* Restructure voice to new module

* fix: deserialization error in speaking bitflags

* feat: kinda janky ip discovery impl

* feat: return ip discovery data + minor update

* feat: packet parsing!

* fix: voice works again

* feat: add voice_media_sink_wants

(comitting uncommited changes to merge)

* chore: rename events/webrtc to events/voice_gateway

* Add UdpHandle

* chore: clippy + other misc updates

* fix: attempt to fix failing wasm build

* chore: yes clippy, that is indeed an unneeded return statement

* feat: add VoiceData struct

* feat: add VoiceData reference to UdpHandler

* feat: decryption?

* chore: formatting

* feat: add ssrc definition (op 12)

* feat: add untested sending & asbtract nonce generation

* feat: Public api! (sorta)

* small updates

* feat: add sequence number

* chore: yes

* feat: merge VoiceHandler into official development

* chore: yes clippy, you are special

* fix: duplicated gateway events

* feat: first try at vgw wasm compat

* fix: blunder

* fix: gateway connect using wrong url

* fix: properly using encrypted data, bad practice for buffer creation

* chore: split voice udp

* feat: udp error handling, create udp/backends

* fix: its the same

* chore: clarify UDP on WASM

* api: split voice gateway and udp features, test for voice gateway in WASM

* feat: new encryption modes, minor code quality

* docs: document voice encryption modes

* chore: unused imports

* chore: update getrandom version to match wasm version

* chore: update on packet size FIXME

* drop buf asap

* Okay can't do that actually

* tests: add nonce test

* normal tests work?

* docs: fix doc warning, fix incorrect refrences to 'webrtc'

* chore: json isn't a doc test

* tests: better gateway auth test

* testing tests

* update voice heartbeat, fix the new test issue

* committed too much

* fix: unused import

* fix: use ip discovery address as string, not as Vec<u8>

* chore: less obnoxious logging

* chore: better unimplemented voice modes handling

* chore: remove unused variable

* chore: use matches macro

* add voice examples, make gateway ones clearer

* rename voice example

* chore: remove unused VoiceHandler

* fix: implement gateway Reconnect and InvalidSession

* Typo

Co-authored-by: Flori <39242991+bitfl0wer@users.noreply.github.com>

* Fix a bunch of typos

Co-authored-by: Flori <39242991+bitfl0wer@users.noreply.github.com>

* fix: error handling while loading native certs

* fix: guh

* use be for nonce bytes

* fix: refactor gw and vgw closures

* remove outdated docs

---------

Co-authored-by: Flori <39242991+bitfl0wer@users.noreply.github.com>
2024-04-16 17:18:21 +02:00
kozabrada123 9304af2594 Ignore unused imports for pub use (#484) 2024-03-15 17:08:46 +01:00
kozabrada123 2d72442522 Minor docs updates, add Get Private Channels (#483)
* feat: add get_private_channels

* minor docs update and reorder
2024-03-15 16:13:51 +01:00
kozabrada123 5a1931951f Fix broken luna.gitlab.io links (#480)
docs: fix broken luna.gitlab.io links
2024-02-25 09:54:06 +01:00
bitfl0wer b8ba92cf07 Include license header everywhere 2024-01-30 17:19:34 +01:00
bitfl0wer 24cec523e0 Remove old/redundant code from attachment.rs 2024-01-23 23:11:37 +01:00
bitfl0wer e06edada1e Change: register/login no longer require ownership
Register/login used to require ownership of `instance`. This wasn't really necessary and has been changed.
2023-11-22 18:48:37 +01:00
bitfl0wer a4d5ebb689 Resolve merge conflicts 2023-11-19 19:12:29 +01:00
bitfl0wer 862a846055 Rename `get_handle` to `spawn` 2023-11-18 19:07:56 +01:00
bitfl0wer ce7ff49ee4 checkpoint 2023-11-18 18:08:12 +01:00
bitfl0wer b93b3690da Refactor project to use chorus::Gateway[...] 2023-11-15 21:03:53 +01:00
bitfl0wer 5bbf1cef1f Add prefix "Default" To Gateway, -Handler and HeartbeatHandler 2023-11-15 20:58:10 +01:00
bitfl0wer e4cc201b79 Remove all imports of Gateway and GatewayHandle 2023-11-15 20:57:06 +01:00
bitfl0wer 20c9066e6f Properly extract all extractable methods from GatewayHandle into Trait 2023-11-15 20:18:50 +01:00
bitfl0wer 06d25d3e50 Impl base of GatewayCapable for Gateway 2023-11-15 00:04:04 +01:00
bitfl0wer 81447c9dda Split up gateway.rs into several files 2023-11-14 11:13:02 +01:00
kozabrada123 bc5e64b79d Add option to login with only a token (#427)
* Add login with token
2023-09-01 17:17:49 +02:00
bitfl0wer e17fcd9e0f Make login only take owned values 2023-09-01 13:01:50 +02:00
bitfl0wer a8bcb58493 Make auth functions take owned values, similar to the rest of the API 2023-09-01 12:12:07 +02:00
bitfl0wer 6e136fba83 Make ChorusError Clone 2023-09-01 01:17:23 +02:00
kozabrada123 0dfd622661 Fix failing build w/o client and move ratelimits (#426)
* Fix failing build without client feature

* Feature lock Updateable and Composite
2023-08-30 15:26:19 +02:00
kozabrada123 3d8d6b6f3b Make GatewayHandle Clone 2023-08-29 14:24:32 +02:00
bitfl0wer 00faab4801 Change gateway to Arc::new(gateway) 2023-08-29 00:05:36 +02:00
bitfl0wer 4bbb22eb31 Replace `belongs_to: Rc<RefCell<Instance>>` with `Arc<RwLock<Instance>>` to make `ChorusUser` `Send` 2023-08-28 18:12:17 +02:00
bitfl0wer 02212f95e3 Add Debug derives to all structs 2023-08-28 12:27:21 +02:00
bitfl0wer 2f9936cfd2 Add rustdoc comments 2023-08-26 19:41:00 +02:00
bitfl0wer ea66edc68d Fix guild ban test failing 2023-08-26 17:45:27 +02:00
bitfl0wer aee50036a0 Add delete_role + test 2023-08-26 16:54:24 +02:00
bitfl0wer 116f1312e7 Disambiguate function name 2023-08-26 16:22:18 +02:00
bitfl0wer 1709e85a4b Add delete_guild_ban 2023-08-25 17:28:02 +02:00
bitfl0wer 07ebaf6119 Add Get Guild Ban/s, add audit_log_reason to create_ban 2023-08-25 17:26:01 +02:00
bitfl0wer cd70a5b388 Add modify guild member profile route 2023-08-25 17:11:00 +02:00
bitfl0wer cce5b507bc Add modify_current_member route 2023-08-25 16:54:41 +02:00
bitfl0wer 7b55590fd0 Add modify_member route 2023-08-25 16:47:28 +02:00
bitfl0wer 516a1467fa Add some more routes 2023-08-25 01:35:57 +02:00
bitfl0wer 2b69aba2ca Merge branch 'main' into guild-routes 2023-08-25 01:11:28 +02:00
bitfl0wer d73c1963fc Start refactoring ChorusRequest to ChorusRequest::new() 2023-08-25 00:02:26 +02:00
bitfl0wer e9318ea4dc start adding auditlogreason to routes that take it 2023-08-24 22:30:13 +02:00
bitfl0wer eb163d278a Change UserMeta to ChorusUser 2023-08-24 21:46:02 +02:00
bitfl0wer facb91fc20 Merge branch 'main' into guild-routes 2023-08-24 21:41:22 +02:00
bitfl0wer fb7e33c0ec Change `UserMeta` to `ChorusUser` 2023-08-24 21:06:28 +02:00
bitfl0wer 5ed2f0f2c3 add get guild preview route 2023-08-24 21:05:39 +02:00
bitfl0wer 9db9d2a512 Add get user guilds endpoint 2023-08-23 00:08:43 +02:00
bitfl0wer 9e3bf947c1 Add acknowledge_pinned endpoint 2023-08-22 22:34:37 +02:00
bitfl0wer a23363e0a3 add delete and bulk_delete endpoints 2023-08-22 22:32:48 +02:00
bitfl0wer a8f37ea201 Add Modify Message endpoint 2023-08-22 22:27:09 +02:00
bitfl0wer f85cde71b4 Add Hide from guild feed endpoint 2023-08-22 22:16:07 +02:00