use std::sync::Once;
use refluxer::http::HttpClient;
use refluxer::model::id::GuildId;
static INIT: Once = Once::new();
pub fn init_env() {
INIT.call_once(|| {
let _ = dotenvy::from_filename("../.env");
let _ = dotenvy::dotenv();
});
}
pub fn setup() -> (HttpClient, GuildId) {
init_env();
let token = std::env::var("FLUXER_TOKEN").expect("FLUXER_TOKEN env var required");
let guild_id: u64 = std::env::var("FLUXER_GUILD_ID")
.expect("FLUXER_GUILD_ID env var required")
.parse()
.expect("FLUXER_GUILD_ID must be a number");
let http = HttpClient::new(&token).expect("valid HTTP client");
(http, GuildId::new(guild_id))
}
#[allow(dead_code)]
pub async fn start_gateway_session() -> refluxer::gateway::GatewayConnection {
init_env();
let token = std::env::var("FLUXER_TOKEN").expect("FLUXER_TOKEN env var required");
let gateway_url = "wss://gateway.fluxer.app";
let gw = refluxer::gateway::GatewayConnection::connect(gateway_url, &token)
.await
.expect("failed to connect to gateway");
tokio::time::sleep(std::time::Duration::from_secs(2)).await;
gw
}