diff --git a/src/main.rs b/src/main.rs index 9c449c4..f54467e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -308,26 +308,33 @@ fn main() -> anyhow::Result<()> { // Filter chats that have less that specified ammount of talks with support agent form the last queue transfer let found = talk_histories .as_array() - .expect("Wrong message type received from talk histories") + .expect("Wrong message type received from talk histories.") .into_iter() .enumerate() .find(|(pos, message_object)| { let message = message_object["message"] .as_str() - .expect("Failed to decode message as string"); + .expect("Failed to decode message as string."); + let template_id = message_object["is_template"] + .as_bool() + .unwrap_or(true); + // println!("Conteudo do template_id da mensagem {}: {:?}", pos, template_id); let found = message.find( "Atendimento transferido para a fila [NovaNet -> Atendimento -> NOC - Clientes]", ); - found.is_some() + + found.is_some() || template_id }); match found { None => { + println!("Descartado - Não encontrou a transferencia ou o template no chat. 1"); return None; } Some(pos) => { let pos_found = pos.0; if pos_found < MINIMUM_NUMBER_OF_MESSAGES_WITH_AGENT_TO_EVALUATE { + println!("Descartado - Chat não tem o número minimo de mensagens com agente."); return None; } } @@ -339,6 +346,7 @@ fn main() -> anyhow::Result<()> { .unwrap_or("unknown_user") == "PipeBot" { + println!("Descartado - Chat finalizado pelo pipebot."); return None; } @@ -346,6 +354,7 @@ fn main() -> anyhow::Result<()> { if json["finished_at"].to_string() == "null" { + println!("Descartado - Chat não finalizado."); return None; } @@ -364,14 +373,17 @@ fn main() -> anyhow::Result<()> { .find(&keyword.to_uppercase()) .is_some() }); + /* let found2 = message_object["is_template"] .as_bool() .unwrap_or(true); let found = found1 || found2; - found + */ + found1 }); if filter_keywords_found { + println!("Descartado - Encontrou uma frase do filtro no chat."); return None; } @@ -401,9 +413,11 @@ fn main() -> anyhow::Result<()> { let message = message_object["message"] .as_str() .expect("Failed to decode message as string"); - let found = message.find("Atendimento entregue da fila de espera para o agente [NOC - "); - let found = message.find("Olá, faço parte do setor de Redes aqui da NovaNet."); - found.is_some() + let found = message.find("Atendimento entregue da fila de espera para o agente [NOC"); + let is_template = message_object["is_template"] + .as_bool() + .unwrap_or(true); + found.is_some() || is_template }); // Find first agent message sent after the last bot message @@ -602,7 +616,7 @@ fn main() -> anyhow::Result<()> { // Send folder to email - let recipients = "Wilson da Conceição Oliveira , Nicolas Borges da Silva "; + let recipients = "Nicolas Borges da Silva , wilson@nova.net.br"; println!("Trying to send email... Recipients {recipients}"); send_mail_util::send_mail_util::send_email(