flodgatt/src/main.rs

44 lines
1.3 KiB
Rust
Raw Normal View History

2019-02-11 18:58:51 +01:00
mod api;
use actix_web::{server, App};
2019-02-11 09:45:14 +01:00
use env_logger::Builder;
use log::info;
use std::net::SocketAddr;
use structopt::StructOpt;
const ENV_LOG_VARIABLE: &str = "STREAMING_API_LOG";
#[derive(StructOpt)]
struct Opt {
#[structopt(short, long, default_value = "3666")]
port: u16,
}
fn main() {
Builder::from_env(ENV_LOG_VARIABLE).init();
let args = Opt::from_args();
info!("starting streaming api server");
2019-02-11 18:58:51 +01:00
let addr: SocketAddr = ([127, 0, 0, 1], args.port).into();
use api::{http, ws};
2019-02-11 09:45:14 +01:00
2019-02-11 18:58:51 +01:00
server::new(|| {
App::new()
.resource("/api/v1/streaming/user", |r| r.with(http::user::index))
.resource("/api/v1/streaming/public", |r| r.with(http::public::index))
.resource("/api/v1/streaming/public/local", |r| r.with(http::public::local))
.resource("/api/v1/streaming/direct", |r| r.with(http::direct::index))
.resource("/api/v1/streaming/hashtag", |r| r.with(http::hashtag::index))
.resource("/api/v1/streaming/hashtag/local", |r| r.with(http::hashtag::local))
.resource("/api/v1/streaming/list", |r| r.with(http::list::index))
.resource("/api/v1/streaming", |r| r.with(ws::index))
})
.bind(addr)
.unwrap()
2019-02-11 21:00:07 +01:00
.shutdown_timeout(10)
2019-02-11 18:58:51 +01:00
.run();
2019-02-11 09:45:14 +01:00
}