Feature revolt selfhosted #1416
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Checklist
tox -e lintand eventox -e formatto autofix what it can)tox -e minimal)Changes
I added a schema
revolt://{server_api_url}/{bot_token}/{targets}to support self hosted instances of Revolt.Chat, instead of only supporting the official instance. The differentiation ofrevolt://{server_api_url}/{bot_token}/{targets}andrevolt://{bot_token}/{targets}works by detecting if domain ends with /, i.e. %2F. I did this to preserve possibility to use the current scheme so as to avoid breaking changes.All tests and ruff linting tests seem to pass. I haven't added new tests as I am inexperienced in that regard and anticipate a lot of changes to this PR if it is to be accepted.
Testing
Note: You need to be running a Revolt Chat server. If your api url contains forward slashes replace them with
%2F:revolt.domain.tld/api/ -> revolt.domain.tld%2Fapi%2FAnyone can help test this source code as follows: