use std::env;
use dotenvy::dotenv;
use tgbot::{
api::Client,
handler::{LongPoll, UpdateHandler},
types::{SendMessage, Update},
};
struct Handler {
client: Client,
}
impl UpdateHandler for Handler {
async fn handle(&self, update: Update) {
log::info!("Got an update: {update:?}");
let chat_id = update.get_chat_id();
let message = update.get_message();
let text = message.and_then(|x| x.get_text());
if let (Some(chat_id), Some(text)) = (chat_id, text) {
let method = SendMessage::new(chat_id, text.data.clone());
self.client.execute(method).await.unwrap();
}
}
}
#[tokio::main]
async fn main() {
dotenv().ok();
env_logger::init();
let token = env::var("TGBOT_TOKEN").expect("TGBOT_TOKEN is not set");
let client = Client::new(token).expect("Failed to create API");
LongPoll::new(client.clone(), Handler { client }).run().await;
}