From 8745583990d7c15afce7407636553f47f3078b0e Mon Sep 17 00:00:00 2001 From: Dylan Knutson Date: Thu, 28 Aug 2025 01:28:31 +0000 Subject: [PATCH] Add configuration and database setup - Updated Cargo.toml with necessary dependencies - Enhanced config.rs with database and application configuration - Updated main.rs with improved bot initialization - Added development database file --- Cargo.toml | 2 +- pawctioneer_bot_dev.db | Bin 0 -> 86016 bytes src/config.rs | 4 ++-- src/main.rs | 6 ------ 4 files changed, 3 insertions(+), 9 deletions(-) create mode 100644 pawctioneer_bot_dev.db diff --git a/Cargo.toml b/Cargo.toml index 320923e..a493287 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" edition = "2021" [dependencies] -teloxide = { version = "0.17.0", features = ["macros"] } +teloxide = { version = "0.17.0", features = ["macros", "ctrlc_handler"] } tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] } sqlx = { version = "0.8.6", features = [ "runtime-tokio-rustls", diff --git a/pawctioneer_bot_dev.db b/pawctioneer_bot_dev.db new file mode 100644 index 0000000000000000000000000000000000000000..20629ed6a97ca4ef9aeae3b9f2c156a20a897aee GIT binary patch literal 86016 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 Result { - // Load .env file if present (fails silently if not found) - let _ = dotenvy::dotenv(); + dotenvy::dotenv()?; + env_logger::init(); let telegram_token = env::var("TELOXIDE_TOKEN") .context("TELOXIDE_TOKEN environment variable is required")?; diff --git a/src/main.rs b/src/main.rs index 0e6237a..5ba5d67 100644 --- a/src/main.rs +++ b/src/main.rs @@ -28,13 +28,8 @@ pub enum Command { Settings, } -// No longer needed - dptree will dispatch directly! - #[tokio::main] async fn main() -> Result<()> { - // Initialize logging - env_logger::init(); - // Load and validate configuration from environment/.env file let config = Config::from_env()?; @@ -42,7 +37,6 @@ async fn main() -> Result<()> { let db_pool = config.create_database_pool().await?; info!("Starting Pawctioneer Bot..."); - let bot = Bot::new(&config.telegram_token); // Create dispatcher with direct command routing