73 lines
2.4 KiB
Rust
Executable File
73 lines
2.4 KiB
Rust
Executable File
use std::env;
|
|
use dotenv;
|
|
|
|
use futures::StreamExt;
|
|
use telegram_bot::*;
|
|
use telegram_bot::{Api, Message, SendMessage, MessageKind, UpdateKind};
|
|
mod email;
|
|
mod tele;
|
|
use tele::TStruct;
|
|
use std::result::Result;
|
|
use std::{thread, time};
|
|
|
|
|
|
|
|
#[tokio::main]
|
|
async fn main() -> Result<(), Error> {
|
|
dotenv::dotenv().ok();
|
|
let token = env::var("TELEGRAM_BOT_TOKEN").expect("TELEGRAM_BOT_TOKEN not set");
|
|
let api = Api::new(token);
|
|
|
|
// api.send(message.text_reply(format!("+ wgbot is booting up")));
|
|
|
|
let imap_username = env::var("IMAP_USERNAME").expect("imap username is not set");
|
|
let imap_password = env::var("IMAP_PASSWORD").expect("imap password is not set");
|
|
let telegram_log_id: i64 = env::var("TELEGRAM_LOG_ID").expect("TELEGRAM_LOG_ID is not set").parse().unwrap();
|
|
|
|
let t: TStruct = TStruct::new(api, telegram_log_id);
|
|
t.test();
|
|
t.log("++ wgbot is online").await?;
|
|
|
|
loop {
|
|
println!("++ fetching new emails");
|
|
let email = email::fetch_inbox_top(&imap_username, &imap_password, &t);
|
|
match email {
|
|
Ok(v) => {
|
|
println!("positive result");
|
|
match v {
|
|
Some(x) => {
|
|
let log_msg = format!("++ new listing: {}", x);
|
|
t.log(&log_msg).await?;
|
|
}
|
|
None => println!("None returned")
|
|
}
|
|
},
|
|
Err(e) => println!("error: {:?}", e),
|
|
}
|
|
let wait_time = time::Duration::from_millis(5000);
|
|
thread::sleep(wait_time);
|
|
}
|
|
|
|
//
|
|
// // Fetch new updates via long poll method
|
|
// let mut stream = api.stream();
|
|
// while let Some(update) = stream.next().await {
|
|
// // If the received update contains a new message...
|
|
// let update = update?;
|
|
// if let UpdateKind::Message(message) = update.kind {
|
|
// if let MessageKind::Text { ref data, .. } = message.kind {
|
|
// // Print received text message to stdout.
|
|
// println!("<{}>: {}", &message.from.first_name, data);
|
|
// println!("user id: {}", &message.from.id);
|
|
//
|
|
// // Answer message with "Hi".
|
|
// api.send(message.text_reply(format!(
|
|
// "Hi, {}! You just wrote '{}'",
|
|
// &message.from.first_name, data
|
|
// )))
|
|
// .await?;
|
|
// }
|
|
// }
|
|
// }
|
|
Ok(())
|
|
} |