Commit Graph

65 Commits

Author SHA1 Message Date
kozabrada123 56b2381716
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
Flori 73c3d030f1
Move contribution guidelines to CONTRIBUTING.md (#478)
Moves the contribution guidelines from README.md to CONTRIBUTING.md, as
per @striezel's suggestion.
2024-02-04 22:30:08 +01:00
bitfl0wer 9f76afb6bb
Move contribution guidelines to CONTRIBUTING.md 2024-02-01 11:52:29 +01:00
kozabrada123 36a72416d6
Fix example in readme for #456 (#475) 2024-01-31 22:53:13 +01:00
Dirk Stolle f0686892e0
Fix a few typos (#471) 2024-01-31 22:27:53 +01:00
Flori d3853700c0
Update README.md 2024-01-19 21:55:05 +01:00
bitfl0wer ce6f09b657
Update documentation and examples 2023-12-10 18:40:03 +01:00
bitfl0wer 1cbeba45c4
Merge branch 'dev' 2023-12-03 22:37:28 +01:00
bitfl0wer bbdcd35b60
Bump version 2023-12-03 22:35:45 +01:00
Flori 5ff206db8a
QoL Updates (#452)
- Make register and login not take an instance by ownership
- Add README information to `lib.rs`
- Add more derives to ChorusUser and Instance
- Impl From reqwest::Error for ChorusError
- Add support for .well-known #449 
- Remove "limited: bool" as an argument for `Instance::new` in favour of
dynamic instance limit checking #450
2023-12-03 22:31:21 +01:00
Flori 4786d0c767
Update README.md 2023-11-25 13:26:24 +01:00
bitfl0wer 9336c7ac9b
Change text passages for better clarity 2023-11-24 21:37:30 +01:00
bitfl0wer f78af695d3
Update supported compilation target for Chorus to
versions 0.12.0 and up
2023-11-22 16:14:33 +01:00
bitfl0wer 889db105da
Update supported platforms in README 2023-11-22 15:01:51 +01:00
bitfl0wer e6417d8ddd
Add build instructions, especially for wasm 2023-11-22 14:20:45 +01:00
bitfl0wer 68d18bb922
Refactor Chorus library documentation and examples 2023-11-13 22:20:57 +01:00
bitfl0wer d5d387ae67
Change Status to Alpha 2023-08-27 13:21:45 +02:00
bitfl0wer db0bbc3491
Add code coverage using coveralls and tarpaulin 2023-08-25 20:58:46 +02:00
Flori 509f2f6fb4
Update README.md 2023-08-20 17:28:11 +02:00
Flori 7df6cb183f
Join/Leave Guilds, (Group) DMs and minor improvements (#157)
## Summary:

**Added:**
- Schemas `PrivateChannelCreateSchema` `ChannelInviteCreateSchema`, `AddChannelRecipientSchema` recursively (including schemas which were needed to create these schemas)
- Methods `create_private_channel`, `leave_guild`, `accept_invite`, `create_user_invite`, `create_guild_invite`, `add_channel_recipient`, `remove_channel_recipient`
- Integration tests for the functionality covered by implementing #45
- Documentation in some places where I noticed it would be useful to have some
- `create_user` method in `/src/tests`: Cuts down on test boilerplate needed to create an addition test user

**Changed:**
- `.gitignore`
  - Added `.DS_store` files to gitignore (some weird macos files), removed Cargo.lock, as Cargo.lock should be included for libraries
- Added a lot of default trait derives like Clone, Copy, PartialEq, Eq, Ord, PartialOrd to structs and enums where I saw them missing
- Added missing `teardown()` calls to the integration tests
- Renamed integration test files in `/src/tests` dir to all be plural: `channel.rs` -> `channels.rs`
- Made more fields on `User` type `Option<>`
- All instances in `/src/tests` where a second test user was created using a RegistrationSchema and the register_user method were replaced with the new `create_user` method
- README.md: Marked roadmap fields covered by #45 as implemented
- Changed visibility of `/src/tests/common/mod.rs` methods from `pub` to `pub(crate)`. In hindsight, this was probably not required, haha

**Removed:**
- Unneeded import in`src/types/config/types/guild_configuration.rs`


## Commit log:

* Add .DS_store, remove Cargo.lock

* Create PrivateChannelCreateSchema

* pub use users

* add channels.rs

* create channels.rs

* Add Deserialize/Serialize derives

* Implement create_private_channel

* Add create_dm() test

* Make optional fields on `User` `Option<>`

* Check boxes for implemented features

* Create users/guilds.rs

* Remove unneeded import

* Add UserMeta::leave_guild()

* Create api/invites/mod.rs

* Add debug print to send_request

* Rename tests files

* Create invites.rs

* create invite.rs

* Add documentation

* Implement accept_invite

* Sort fields on Channel alphabetically

* Add invite mod

* Add forgotten teardown() at test end

* change visiblities, add create_user()

* Implement `create_user_invite()`

* start working on invite tests

* Add allow flags

* Fix bad url

* Create CreateChannelInviteSchema and friends

* remove non-implemented test code

* add body to requests

* Add Clone to UserMeta

* More comprehensive error message when running into a deserialization error

* Add arguments documentation to accept_invite

* Add Eq derive to GuildFeaturesList

* Add Eq derive to Emoji

* Add Eq derive to GuildBan

* Add create_accept_invite() test

* Add Default derive to ChannelCreateSchema

* Change create_guild_invite to return GuildInvite

* Dates as chrono::Date(Utc); sort alphabetically

* Add default derives wherever possible

* Implement add_- and remove_channel_recipient

* Create AddChannelRecipientSchema

* replace otheruser regs with bundle.creeate_user()

* Add (disabled) test remove_add_person_from_to_dm()
2023-07-17 19:36:28 +02:00
Flori Weber 9942a4b100
Simplify README 2023-06-20 00:17:52 +02:00
Flori e03cafd23f
Update README.md 2023-06-19 23:42:56 +02:00
Flori Weber 7f1f1e567e
Merge branch 'main' into feature/relationships 2023-06-19 16:36:52 +02:00
Flori 4fd3e3464a
Update badges 2023-06-19 16:28:43 +02:00
Flori Weber 9cc7243c98
Mark Friend Requests and Blocking as completed 2023-06-18 23:24:10 +02:00
Flori 8fb0e08d4c
Update README.md 2023-06-17 23:26:57 +02:00
Flori 1a6b54833a
Update README.md 2023-06-11 13:05:45 +02:00
Flori Weber b453dc3bff
Mark Permission management as finished 2023-06-11 12:31:46 +02:00
bitfl0wer c843fba385
Mark 2 objects as complete 2023-06-10 22:27:46 +02:00
Flori Weber b9a11a89c3
Mark role management as completed 2023-06-10 19:17:35 +02:00
bitfl0wer 9b1adba411
Re-order README, link issues 2023-06-04 19:49:04 +02:00
Flori 6980571ca6
Update README.md 2023-06-04 19:33:46 +02:00
Flori 86912147b9
Update README.md 2023-06-04 19:31:39 +02:00
Flori 009f3d4bb3
Update README.md 2023-06-04 14:48:39 +02:00
Flori 73b1cd31e2
Update README.md 2023-06-01 19:16:25 +02:00
Flori 315ebe6914
Update README.md 2023-05-29 19:20:41 +02:00
Flori 78da2d00a4
Update README.md 2023-05-29 19:05:26 +02:00
Flori 5a7565b0b3
Update README.md 2023-05-28 22:29:24 +02:00
bitfl0wer 299810f07a
Flesh out the Roadmap 2023-05-27 15:25:41 +02:00
Flori 2a0211190a
Update README.md 2023-05-25 18:33:17 +02:00
Flori a177ddc60b
Update README.md 2023-05-13 19:20:49 +02:00
Flori b4d0e2d662
Merge pull request #38 from polyphony-chat/feature/sending-messages
Feature/sending messages
2023-05-12 19:21:09 +02:00
bitfl0wer 96091053e4
Mark Sending messages as done 2023-05-12 19:20:03 +02:00
Flori 37559e8665
Update README.md 2023-05-12 15:53:16 +02:00
Flori d543bd99b1
Update README.md 2023-04-30 20:07:24 +02:00
Flori ea0f49f271
Update README.md 2023-04-29 10:51:39 +02:00
Flori 01c3f28c94
Update README.md 2023-04-26 11:19:04 +02:00
Flori 3932df005b
Update README.md 2023-04-23 20:34:40 +02:00
Flori 0c2a549f41
Update README.md 2023-04-23 20:16:39 +02:00
Flori 5f9a182aa5
Update README.md 2023-04-23 14:05:44 +02:00