49 lines
1.0 KiB
Rust
49 lines
1.0 KiB
Rust
mod album_manager;
|
|
mod config;
|
|
mod discord;
|
|
mod error;
|
|
mod inventory;
|
|
mod migrations;
|
|
mod models;
|
|
mod user;
|
|
|
|
use crate::config::{Args, BotConfig, GlobalData};
|
|
use crate::discord::run_bot;
|
|
use log::{error, info};
|
|
use magick_rust::magick_wand_genesis;
|
|
use std::sync::Once;
|
|
use structopt::StructOpt;
|
|
|
|
const BAD_APPLE: &str = include_str!("assets/bad_apple.txt");
|
|
|
|
static START: Once = Once::new();
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
let args: Args = Args::from_args();
|
|
tracing_subscriber::fmt::init();
|
|
|
|
let cfg = match BotConfig::new(&args.cfg_path) {
|
|
Ok(cfg) => cfg,
|
|
Err(err) => {
|
|
error!("Unable to open config: {}", err);
|
|
return;
|
|
}
|
|
};
|
|
|
|
START.call_once(|| {
|
|
magick_wand_genesis();
|
|
});
|
|
|
|
let global_data = match GlobalData::new(args, cfg).await {
|
|
Ok(global_data) => global_data,
|
|
Err(err) => {
|
|
error!("Error parsing config: {}", err);
|
|
return;
|
|
}
|
|
};
|
|
|
|
info!("Fren bot starting...");
|
|
run_bot(global_data).await;
|
|
}
|