use ferogram::Client;
const API_ID: i32 = 0; const API_HASH: &str = "";
#[tokio::main]
async fn main() {
if let Err(e) = run().await {
eprintln!("error: {e}");
std::process::exit(1);
}
}
async fn run() -> Result<(), Box<dyn std::error::Error>> {
if API_ID == 0 || API_HASH.is_empty() {
eprintln!("Fill in API_ID and API_HASH at the top of serverless_userbot.rs");
std::process::exit(1);
}
let session_string = std::env::var("SESSION_STRING")
.map_err(|_| "SESSION_STRING env var not set. Run string_session_gen first.")?;
let (client, _shutdown) = Client::builder()
.api_id(API_ID)
.api_hash(API_HASH)
.session_string(session_string)
.connect()
.await?;
let me = client.get_me().await?;
println!(
"Logged in as {} ({})",
me.first_name.as_deref().unwrap_or("?"),
me.id
);
client
.send_message("me", "Hello from ferogram! String session is working.")
.await?;
println!("Sent a message to Saved Messages. Check your Telegram app.");
Ok(())
}