update client + remake web-ui (server, incomplete)

This commit is contained in:
Mark
2024-05-15 22:58:30 +02:00
parent 55e0e02622
commit 6eb884e7a5
29 changed files with 584 additions and 843 deletions

View File

@@ -1,3 +1,4 @@
#[cfg(feature = "website")]
mod web;
use std::{
@@ -5,7 +6,6 @@ use std::{
path::PathBuf,
process::exit,
sync::{Arc, Mutex},
thread,
};
use clap::Parser;
@@ -47,8 +47,7 @@ struct Args {
advanced_cache_song_lookahead_limit: u32,
}
#[tokio::main]
async fn main() {
fn main() {
// parse args
let args = Args::parse();
let mut database = if args.init {
@@ -88,11 +87,25 @@ async fn main() {
);
};
if let Some(addr) = &args.web {
let (s, mut r) = tokio::sync::mpsc::channel(2);
let db = Arc::clone(&database);
thread::spawn(move || run_server(database, Some(s)));
if let Some(sender) = r.recv().await {
web::main(db, sender, *addr).await;
#[cfg(not(feature = "website"))]
{
let _ = addr;
eprintln!("Website support requires the 'website' feature to be enabled when compiling the server!");
std::process::exit(80);
}
#[cfg(feature = "website")]
{
let (s, r) = std::sync::mpsc::sync_channel(1);
let db = Arc::clone(&database);
std::thread::spawn(move || {
run_server(database, Some(Box::new(move |c| s.send(c).unwrap())))
});
let sender = r.recv().unwrap();
tokio::runtime::Builder::new_current_thread()
.enable_all()
.build()
.unwrap()
.block_on(web::main(db, sender, *addr));
}
} else {
run_server(database, None);

File diff suppressed because it is too large Load Diff