2024-07-05 00:06:47 +00:00
|
|
|
use anyhow::{Result};
|
2024-07-10 19:49:05 +00:00
|
|
|
use crate::telegram::DispatchWithResult;
|
2024-07-04 01:15:39 +00:00
|
|
|
|
2024-07-04 22:47:10 +00:00
|
|
|
pub(crate) mod database;
|
2024-07-04 01:15:39 +00:00
|
|
|
mod telegram;
|
|
|
|
|
|
|
|
#[tokio::main]
|
|
|
|
async fn main() -> Result<()> {
|
2024-07-04 22:47:10 +00:00
|
|
|
// Logging setup
|
2024-07-10 19:49:05 +00:00
|
|
|
pretty_env_logger::init();
|
|
|
|
log::debug!("Logging initialized successfully!");
|
|
|
|
|
2024-07-04 22:47:10 +00:00
|
|
|
// Telegram setup
|
2024-07-10 19:49:05 +00:00
|
|
|
log::trace!("Setting up Telegram bot dispatcher...");
|
|
|
|
let mut telegram_dispatcher = telegram::dispatcher();
|
|
|
|
let telegram_awaitable = telegram_dispatcher.dispatch_with_result();
|
|
|
|
|
|
|
|
// Run all services concurrently
|
|
|
|
log::info!("Starting services...");
|
|
|
|
tokio::try_join![
|
|
|
|
telegram_awaitable,
|
|
|
|
];
|
2024-07-04 01:15:39 +00:00
|
|
|
|
2024-07-10 19:49:05 +00:00
|
|
|
// This should never happen, but just in case...
|
|
|
|
log::error!("A service has exited, bailing out...");
|
|
|
|
anyhow::bail!("A service has exited.")
|
2024-07-04 01:15:39 +00:00
|
|
|
}
|