use crate::{database::Database, library::Library, CONF}; use jellyremuxer::RemuxerContext; use rocket::{catchers, config::SecretKey, routes, Build, Config, Rocket}; use stream::r_stream; use ui::{ account::{r_account_login, r_account_login_post, r_account_register, r_account_register_post}, error::r_catch, home::r_home, node::{r_item_assets, r_library_node}, player::r_player, style::{r_assets_font, r_assets_js, r_assets_style}, }; pub mod stream; pub mod ui; #[macro_export] macro_rules! uri { ($kk:tt) => { &rocket::uri!($kk).to_string() }; } pub fn build_rocket( remuxer: RemuxerContext, library: Library, database: Database, ) -> Rocket { rocket::build() .configure(Config { secret_key: SecretKey::derive_from(CONF.cookie_key.as_bytes()), ..Default::default() }) .manage(remuxer) .manage(library) .manage(database) .register("/", catchers![r_catch]) .mount( "/", routes![ r_home, r_library_node, r_assets_style, r_assets_font, r_assets_js, r_stream, r_player, r_account_login, r_account_login_post, r_account_register, r_account_register_post, r_item_assets, ], ) }