This is a fork of Revite that I've butcheredmodified to suit Horahora's needs. Credit for developing the original software goes to the many contributors, most notably insertish. If you have any questions or concerns about what I've done, you may contact me at Otoman#6721 on Discord, my email ([email protected]) or anywhere else you happen to find me. Thank you for your work!
My changes are summarized below:
- I removed browser detection from the login operation (may need this later, we'll see), and removed credentials and friendly_name from the payload to the /auth/session/login endpoint
- I removed the various authentication-related routes except for the default login path, removed the email/password form (replaced with a Button which invokes the login operation) from the login page in order to provide (bad) SSO from my other application, Horahora. With these changes, users login once to Horahora, and then can navigate to the chat and press the big SSO login button, and they'll be logged into their Revolt account.
- removed typecheck and port exposure from Dockerfile
- modified this README to provide attribution and comply with the terms of the license
- modified .env file to use my local API
- modified Dockerfile for hot reloads (development use)
- modified vite config to accommodate my path setup in Nginx
- added functions representing Horahora's planned REST API for watch parties. These functions currently return placeholder data to test component display.
- added "WatchParty" component which currently only implements the basic display for planned channel watch party functionality
- added use of the "WatchParty" component to the standard TextChannel
- changed MessageArea CSS to make room for the new WatchParty component within the text channel
- added buffer dependency to conv uuid to int (lol, WIP)
- implemented API and calls for basic interaction with Horahora's RESTful API for most basic watch party operations
- added form to add videos to video queue (very basic, will change later)
- changed UI display on channel page: two columns, one for video embed/queue controls, one for chat
- expanded Horahora API support, now supporting NextVideo and AddVideo
- added sockets.io for basic pubsub support, currently correctly logging nextvideo events
- added "Next" button to select next video, and changed new video text area to respond correctly to input and call the correct API endpoint
- added support for video embed reloads and real-time video additions/skips
- altered css to balance width between chat and the watch party component
- altered display of next button, added watch party controls section
This is the web client for Revolt, which is also available live at app.revolt.chat.
The following code is pending a partial or full rewrite:
src/components
: components are being migrated to revoltchat/componentssrc/styles
: needs to be migrated to revoltchat/componentssrc/lib
: this needs to be organised
This project contains submodules. Run git submodule init
after you clone this repository to initialize the submodules.
It is also recommended to run git submodule update
after you pull from upstream.
- Revolt Project Board (Submit feature requests here)
- Revolt Testers Server
- Contribution Guide
Get revite up and running locally.
git clone --recursive https://github.com/revoltchat/revite
cd revite
yarn
yarn build:deps
yarn dev
You can now access the client at http://local.revolt.chat:3000.
Command | Description |
---|---|
yarn pull |
Setup assets required for Revite. |
yarn dev |
Start the Revolt client in development mode. |
yarn build |
Build the Revolt client. |
yarn build:deps |
Build external dependencies. |
yarn preview |
Start a local server with the built client. |
yarn lint |
Run ESLint on the client. |
yarn fmt |
Run Prettier on the client. |
yarn typecheck |
Run TypeScript type checking on the client. |
yarn start |
Start a local sirv server with built client. |
yarn start:inject |
Inject a given API URL and start server. |
yarn lint | egrep "no-literals" -B 1 |
Scan for untranslated strings. |
Revite is licensed under the GNU Affero General Public License v3.0.