core/src/chat/stay_awake.rs

63 lines
1.9 KiB
Rust
Raw Normal View History

2021-02-27 21:58:55 +00:00
use crate::chat::types::PackedMessage;
use async_std::io;
2021-03-27 06:09:59 +00:00
use fcpv2::client::fcp_types::ClientGet;
use fcpv2::types::{traits::FcpRequest, ReturnType, KEY, SSK, USK};
2021-02-27 21:58:55 +00:00
use std::sync::mpsc::Sender;
2021-04-21 17:11:57 +00:00
use std::path::Path;
use std::fs::File;
2021-02-27 21:58:55 +00:00
use r2d2_sqlite::SqliteConnectionManager;
use r2d2::Pool;
2021-02-27 21:58:55 +00:00
type SP = Sender<PackedMessage>;
pub async fn request_repeater(ss: SP, conn: Pool<SqliteConnectionManager>) -> io::Result<()> {
2021-04-20 19:23:04 +00:00
let db = conn.get().unwrap();
// loop {
//TODO create a field with tracked users
log::debug!("Request Repeater Started!");
2021-04-21 17:11:57 +00:00
let config: String = String::from_utf8_lossy(&std::fs::read(".hole.toml")?).parse().unwrap();
let parsed: crate::chat::Config = toml::from_str(&config[..]).unwrap();
log::debug!("Config gotted: {:?}", &config);
2021-02-27 21:58:55 +00:00
loop {
2021-04-20 19:23:04 +00:00
let users: Vec<crate::db::types::User> = crate::db::users::load_all_users(&db).unwrap();
2021-04-19 15:03:31 +00:00
let time = std::time::Duration::from_millis(1300);
2021-02-27 21:58:55 +00:00
std::thread::sleep(time);
log::debug!("enough sleep");
2021-04-20 19:23:04 +00:00
for user in users {
let id = user.id.0.to_string();
let index = user.messages_count + 1;
let key = USK {
ssk: parsed.private_key.clone(),
path: format!("{}/{}", &id, &index),
};
log::debug!("sending {:?}", &key.convert());
2021-04-16 17:00:21 +00:00
match ss.send(PackedMessage::ToFreenet(
ClientGet::new_default(
KEY::USK(
key
),
&format!("new-message-{}/{}", &id, &index)[..], // TODO create Identifier type
ReturnType::Direct,
)
.convert(),
2021-03-27 06:09:59 +00:00
)) {
Ok(_) => {},
Err(e) => continue ,
}
2021-04-20 19:23:04 +00:00
}
2021-02-27 21:58:55 +00:00
}
}
//}
// message: format!(
// "ClientGet\n\
// URI=KSK@msg23.txt\n\
// Identifier=doesnt_matter?\n\
// Verbosity=0\n\
// ReturnType=direct\n\
// EndMessage\n\n"
// ),