- 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
Closes#449.
+ `Instance::from_root_url(root_url: &str, limited: bool)`: Creates a
new Instance by trying to get the relevant instance urls (UrlBundle)
from a root url. Shorthand for
`Instance::new(UrlBundle::from_root_domain(root_domain).await?)`
+ `UrlBundle::from_root_url(url: &str)`: Performs a few HTTP requests to
try and retrieve a UrlBundle from an instance's root URL. The method
tries to retrieve the UrlBundle via these three strategies, in order:
- GET: $url/.well-known/spacebar -> Retrieve UrlBundle via
$wellknownurl/api/policies/instance/domains
- GET: $url/api/policies/instance/domains
- GET: $url/policies/instance/domains
The URL stored at .well-known/spacebar is the instance's API endpoint.
The API stores the CDN and WSS URLs under the
$api/policies/instance/domains endpoint. If all three of the above
approaches fail, it is very likely that the instance is misconfigured,
unreachable, or that a wrong URL was provided.
+ Add clippy warnings for: `clippy::todo,
clippy::unimplemented,
clippy::dbg_macro,
clippy::print_stdout,
clippy::print_stderr`
Register and login, for some reason, required ownership of the
`Instance` object. This was not necessary and has been changed in this
PR. The PR also includes some extra tests, like logging in, logging in
with a token, etc.
This PR fixes#430 and enables full support for the
`wasm32-unknown-unknown` compilation target, making chorus the first(?)
Rust Discord-API implementation to support this target.
This PR applies the necessary patches to correctly pass (all but two)
tests when compiling for wasm32-unknown-unknown.
2 tests have been disabled for wasm at the moment: test
messages::search_messages and test messages::send_message_attachment.
These two tests currently rely on `std::fs` to grab a file to
send/search for using chorus. This is not possible on wasm32-unknown,
because this target does not have a Filesystem, and does not emulate on
either. These two tests should be patched, but this should be good
enough for now.