Skip to content
Snippets Groups Projects
main.rs 812 B
Newer Older
Stephen D's avatar
Stephen D committed
#[macro_use]
extern crate diesel;
Stephen D's avatar
Stephen D committed

Stephen D's avatar
Stephen D committed
mod config;
mod framebuffer;
mod handler;
mod models;
mod program;
mod schema;
Stephen D's avatar
Stephen D committed
mod joker;
Stephen D's avatar
Stephen D committed

use crate::handler::Handler;
use diesel::{Connection, PgConnection};
use dotenv::dotenv;
Stephen D's avatar
Stephen D committed
use serenity::Client;
Stephen D's avatar
Stephen D committed
use std::env;
Stephen D's avatar
Stephen D committed

Stephen D's avatar
Stephen D committed
fn establish_connection() -> PgConnection {
	dotenv().ok();
Stephen D's avatar
Stephen D committed

Stephen D's avatar
Stephen D committed
	let database_url = env::var("DATABASE_URL").expect("DATABASE_URL must be set");
	PgConnection::establish(&database_url).expect("Error connecting to database")
Stephen D's avatar
Stephen D committed
}

#[tokio::main]
async fn main() {
	let config = config::get_conf();
	let token = config.token;

Stephen D's avatar
Stephen D committed
	let conn = establish_connection();

Stephen D's avatar
Stephen D committed
	let mut client = Client::builder(&token)
Stephen D's avatar
Stephen D committed
		.event_handler(Handler::new(conn))
Stephen D's avatar
Stephen D committed
		.await
		.expect("Error creating client");
	if let Err(e) = client.start().await {
		println!("Client error: {}", e);
	}
}