revoltchat / backend Goto Github PK
View Code? Open in Web Editor NEWMonorepo for Revolt backend services.
Home Page: https://developers.revolt.chat/api/
License: Other
Monorepo for Revolt backend services.
Home Page: https://developers.revolt.chat/api/
License: Other
Instead of using MongoDB to pass around events, instead use Redis's Pub/Sub.
If anyone has any alternatives to consider please list them below.
The following two routes should be deprecated:
API reports a user's status as Invisible
instead of reporting it as if the user was actually offline.
Right now we rely on the web socket to find out what attachment objects become and do guess work on the library's part in other cases.
This change requires changes to https://gitlab.insrt.uk/revolt/api
Instead of relying on environment variables, configure Revolt nodes through the database.
We should also merge the file server configuration into the database and serve it to clients.
They should not be included in the Ready payload to avoid issues.
Add a way to send messages into channels using an unauthenticated (does not require session token) HTTP request (secret key in path).
Allow clients to not receive the entire object.
See here for a bit of reasoning:
https://app.revolt.chat/server/01F7ZSBSFHQ8TA81725KQCSDDP/channel/01F8PZ2ZHPZFCHAEGQQWSMMF3N/01FDJVA29TSRY2NQD3R4D6FTXH
Rate limiting is now available, add it to the remaining routes.
Specification is ready, now implementing.
Routes to implement:
Ping packets do not get a response right now.
E: Switch to WS spec ping packets.
Inside the "System Message Channels" section of server settings, you can set voice channels as a system message channel. Voice channels do not have text chats for system messages so they should not be listed.
Include the server object and any channels the user has access to.
It seems that most of the API uses colour
but there's one color
field in the Embed metadata which is a bit inconsistent.
Give users a way to react to messages with emojis.
Allow users to customise whether server members get notifications in a server or channel.
Have an option in the setting for non-friends to open direct messages with you.
Some users might prefer to have clean friend lists while still talking with many users from their servers.
Possibly two levels, one for friends and people from your servers and another for anyone on the platform.
The manage roles permission gives two different abilities to users, to assign and remove roles on other users and to create, edit and delete roles.
Having those two always come together is unnecessary and may cause issues in many situations.
That is why the permission would be best split into two.
Instead of sending the Message packet to clients, we should generate the Notification object clients display instead.
Note: We also need to handle mentions in servers!
Currently the server uses is_online
which only checks the local WebSocket connections.
To prevent users disappearing / appearing on members list, allow clients to reconnect within a set period of time and then send any buffered messages to them.
Provide a query parameter such as include_user
This might not be necessary, but check whether we can optimise getting guards.
Add a way to rank roles against each other.
For example GET https://api.revolt.chat/users/relationships
with no auth headers returns:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>500 Internal Server Error</title>
</head>
<body align="center">
<div role="main" align="center">
<h1>500: Internal Server Error</h1>
<p>The server encountered an internal error while processing this request.</p>
<hr />
</div>
<div role="contentinfo" align="center">
<small>Rocket</small>
</div>
</body>
</html>
This isn't specific to the listed endpoint and is happening to more endpoints (e.g. /users/:user
or /channels/:channel
)
Currently this is handled by the client for channels by checking channel name.
The field should only be serialised if true
, something like so:
#[skip_serializing_if = "it is false", default = "false"]
pub nsfw: boolean
Note: Prevent Web Push notifications being generated for nsfw channels, or otherwise add a server flag for this.
Give users the ability to mention all users in a server.
This will also require a separate permission for sending it.
Marking as high priority so people stop bugging me about it.
Let clients know when they're sending bad data for better debugging.
Allow users to select a group icon and users when creating a group.
Requires API work to support icons on creation.
Allow users to report a message or attachment.
We currently don't subscribe to new topics.
We could change how it works with #1
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.