diff --git a/src/api/handlers.rs b/src/api/handlers.rs index 7b7d66e..ab75ac2 100644 --- a/src/api/handlers.rs +++ b/src/api/handlers.rs @@ -92,6 +92,10 @@ pub fn send_message( let identifier = &user_data.id.0.to_string()[..]; let message_id: u32 = user_data.my_messages_count; let id = Id(uuid::Uuid::parse_str(identifier).expect("failed to parse user ID")); + + let config: String = String::from_utf8_lossy(&std::fs::read(".hole.toml")?).parse().unwrap(); + let parsed: crate::chat::Config = toml::from_str(&config[..]).unwrap(); + let my_id = parsed.id.0.to_string(); let db_message = db::types::Message { id: message_id, date: chrono::offset::Local::now(), @@ -102,7 +106,7 @@ pub fn send_message( let _ = db::messages::add_my_message(db_message, conn).unwrap(); log::debug!("Sending new message to freent..."); let fcp_req: String = - ClientPut::new_default_direct(fcpv2::types::USK{ ssk: key, path: format!("{}/{}", &identifier, message_id)}, &format!("new-messge-{}/{}", &identifier, &message_id )[..], &message[..]).convert(); + ClientPut::new_default_direct(fcpv2::types::USK{ ssk: key, path: format!("{}/{}", &my_id, message_id)}, &format!("new-messge-{}/{}", &identifier, &message_id )[..], &message[..]).convert(); server_sender .send(PackedMessage::ToFreenet(fcp_req)) .unwrap(); diff --git a/src/chat/front_conn.rs b/src/chat/front_conn.rs index 6da8a11..9de6349 100644 --- a/src/chat/front_conn.rs +++ b/src/chat/front_conn.rs @@ -122,24 +122,24 @@ async fn connection_for_receiving( &data.identifier, &data.data ); - server_sender.send(PackedMessage::ToClient(data.data.clone())); - //TOOD parse identifier - let (uuid, id) = + server_sender.send(PackedMessage::ToClient(data.data.clone())).unwrap(); + let (_, id) = crate::api::identifier::parse_message_identifier(&data.identifier); - log::debug!("parsed identifier: {:?} {:?}", uuid, id); let jsoned: crate::api::types::Message = serde_json::from_str(&data.data[..]).unwrap(); + let uid = Id(jsoned.id); crate::db::messages::add_message( crate::db::types::Message { id: id, date: jsoned.date, - user_id: Id(jsoned.id), + user_id: uid.clone(), message: jsoned.message, from_me: jsoned.from_me, }, &db, ) - .unwrap() + .unwrap(); + crate::db::users::increase_my_messages_count(uid.clone(), &db).unwrap(); /*async_std::task::block_on( sender // TODO freenet_response_handler diff --git a/src/chat/stay_awake.rs b/src/chat/stay_awake.rs index a74566d..644dbc6 100644 --- a/src/chat/stay_awake.rs +++ b/src/chat/stay_awake.rs @@ -18,9 +18,7 @@ pub async fn request_repeater(ss: SP, conn: Pool) -> io log::debug!("Request Repeater Started!"); 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); -// let identifier_fil = File::open( ) ; loop { let users: Vec = crate::db::users::load_all_users(&db).unwrap(); @@ -29,7 +27,7 @@ pub async fn request_repeater(ss: SP, conn: Pool) -> io log::debug!("enough sleep"); for user in users { let id = user.id.0.to_string(); - let index = user.messages_count + 1; + let index = user.messages_count; let key = USK { ssk: parsed.private_key.clone(), @@ -45,7 +43,9 @@ pub async fn request_repeater(ss: SP, conn: Pool) -> io ReturnType::Direct, ) .convert(), - )) { + + )) + { Ok(_) => {}, Err(e) => continue , } diff --git a/src/main.rs b/src/main.rs index b9a5e5f..5864c5c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -40,8 +40,6 @@ use std::{ +--------------+ | | | | | | | | | +----------------------------+ +---------------------------------+ | +-------------------+ | | - | | - +-----------------------------------------------------------------------------------+ */