aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/routes/mod.rs')
-rw-r--r--server/src/routes/mod.rs24
1 files changed, 20 insertions, 4 deletions
diff --git a/server/src/routes/mod.rs b/server/src/routes/mod.rs
index e4d05e5..a6a086f 100644
--- a/server/src/routes/mod.rs
+++ b/server/src/routes/mod.rs
@@ -10,8 +10,14 @@ use jellybase::{federation::Federation, CONF, SECRETS};
use log::warn;
use rand::random;
use rocket::{
- catchers, config::SecretKey, fairing::AdHoc, fs::FileServer, get, http::Header, routes, Build,
- Config, Rocket,
+ catchers,
+ config::SecretKey,
+ fairing::AdHoc,
+ fs::FileServer,
+ get,
+ http::Header,
+ response::{self, Responder},
+ routes, Build, Config, Request, Rocket,
};
use std::fs::File;
use stream::r_stream;
@@ -37,11 +43,11 @@ use ui::{
};
use userdata::{r_node_userdata, r_player_progress, r_player_watched};
-use self::streamsync::r_streamsync;
+use self::playersync::{r_streamsync, PlayersyncChannels};
pub mod api;
pub mod stream;
-pub mod streamsync;
+pub mod playersync;
pub mod ui;
pub mod userdata;
@@ -76,6 +82,7 @@ pub fn build_rocket(database: DataAcid, federation: Federation) -> Rocket<Build>
})
.manage(database)
.manage(federation)
+ .manage(PlayersyncChannels::default())
.attach(AdHoc::on_response("set server header", |_req, res| {
res.set_header(Header::new("server", "jellything"));
Box::pin(async {})
@@ -133,3 +140,12 @@ pub fn build_rocket(database: DataAcid, federation: Federation) -> Rocket<Build>
fn r_favicon() -> MyResult<File> {
Ok(File::open(CONF.asset_path.join("favicon.ico"))?)
}
+
+pub struct Cors<T>(pub T);
+impl<'r, T: Responder<'r, 'static>> Responder<'r, 'static> for Cors<T> {
+ fn respond_to(self, request: &'r Request<'_>) -> response::Result<'static> {
+ let mut r = self.0.respond_to(request)?;
+ r.adjoin_header(Header::new("access-controll-allow-origin", "*"));
+ Ok(r)
+ }
+}