refactor handler.rs

This commit is contained in:
mii443
2024-09-25 01:10:09 +09:00
parent c4f337f059
commit a581ba4b1c

View File

@ -54,29 +54,59 @@ impl ConversionHandler {
self.last_text = contents.to_string().clone(); self.last_text = contents.to_string().clone();
let sock = UdpSocket::bind("127.0.0.1:0").unwrap(); self.return_conversion(contents.to_string(), converted, config);
let msg_buf = encoder::encode(&OscPacket::Message(OscMessage {
addr: "/chatbox/input".to_string(),
args: vec![
OscType::String(converted.clone()),
OscType::Bool(false),
OscType::Bool(true)
]
})).unwrap();
sock.send_to(&msg_buf, "127.0.0.1:9000").unwrap(); CallbackResult::Next
}
fn return_conversion(&mut self, parsed_contents: String, converted: String, config: &Config) {
match config.on_copy_mode {
OnCopyMode::ReturnToClipboard => {
let mut count = 0;
while self.clipboard_ctx.set_contents(converted.clone()).is_err() {
if count > 4 {
break;
}
count += 1;
}
},
OnCopyMode::ReturnToChatbox => {
let sock = UdpSocket::bind("127.0.0.1:0").unwrap();
let msg_buf = encoder::encode(&OscPacket::Message(OscMessage {
addr: "/chatbox/input".to_string(),
args: vec![
OscType::String(converted.clone()),
OscType::Bool(false),
OscType::Bool(true)
]
})).unwrap();
sock.send_to(&msg_buf, "127.0.0.1:9000").unwrap();
},
OnCopyMode::SendDirectly => {
let sock = UdpSocket::bind("127.0.0.1:0").unwrap();
let msg_buf = encoder::encode(&OscPacket::Message(OscMessage {
addr: "/chatbox/input".to_string(),
args: vec![
OscType::String(converted.clone()),
OscType::Bool(true),
OscType::Bool(true)
]
})).unwrap();
sock.send_to(&msg_buf, "127.0.0.1:9000").unwrap();
},
}
let datetime = Local::now(); let datetime = Local::now();
if self.app_handle if self.app_handle
.emit_all("addLog", Log { .emit_all("addLog", Log {
time: datetime.format("%Y %m/%d %H:%M:%S").to_string(), time: datetime.format("%Y %m/%d %H:%M:%S").to_string(),
original: contents.to_string().clone(), original: parsed_contents,
converted converted
}).is_err() { }).is_err() {
println!("App handle add log failed."); println!("App handle add log failed.");
} }
CallbackResult::Next
} }
} }
@ -106,53 +136,7 @@ impl ClipboardHandler for ConversionHandler {
self.last_text = converted.clone(); self.last_text = converted.clone();
match config.on_copy_mode { self.return_conversion(parsed_contents, converted, &config);
OnCopyMode::ReturnToClipboard => {
let mut count = 0;
while self.clipboard_ctx.set_contents(converted.clone()).is_err() {
if count > 4 {
break;
}
count += 1;
}
},
OnCopyMode::ReturnToChatbox => {
let sock = UdpSocket::bind("127.0.0.1:0").unwrap();
let msg_buf = encoder::encode(&OscPacket::Message(OscMessage {
addr: "/chatbox/input".to_string(),
args: vec![
OscType::String(converted.clone()),
OscType::Bool(false),
OscType::Bool(true)
]
})).unwrap();
sock.send_to(&msg_buf, "127.0.0.1:9000").unwrap();
},
OnCopyMode::SendDirectly => {
let sock = UdpSocket::bind("127.0.0.1:0").unwrap();
let msg_buf = encoder::encode(&OscPacket::Message(OscMessage {
addr: "/chatbox/input".to_string(),
args: vec![
OscType::String(converted.clone()),
OscType::Bool(true),
OscType::Bool(true)
]
})).unwrap();
sock.send_to(&msg_buf, "127.0.0.1:9000").unwrap();
},
}
let datetime = Local::now();
if self.app_handle
.emit_all("addLog", Log {
time: datetime.format("%Y %m/%d %H:%M:%S").to_string(),
original: parsed_contents,
converted
}).is_err() {
println!("App handle add log failed.");
}
} else { } else {
self.last_text = contents; self.last_text = contents;
} }