use safe_vk::{
extract::{Ctx, State},
responses::Message,
util::Filter,
SafeVk,
};
use std::env;
#[derive(Clone)]
pub struct AppState {
version: &'static str,
}
async fn version(State(state): State<AppState>, update: Ctx<Message>) {
assert_eq!("1.0.0", state.version);
update.reply(format!("V{}", state.version)).await.unwrap();
}
#[tokio::main]
async fn main() {
let group_id: u32 = env::var("GROUP_ID")
.unwrap_or_else(|_| "0".into())
.parse()
.expect("GROUP_ID must be a valid u32");
let token = env::var("TOKEN").expect("TOKEN environment variable not set");
let bot = SafeVk::new()
.command("/version", version, Filter::Sensitive)
.with_state(AppState { version: "1.0.0" });
safe_vk::start_polling(&token, group_id, bot).await.unwrap();
}