refactor handler.rs

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

View File

@ -54,58 +54,12 @@ impl ConversionHandler {
self.last_text = contents.to_string().clone();
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();
let datetime = Local::now();
if self.app_handle
.emit_all("addLog", Log {
time: datetime.format("%Y %m/%d %H:%M:%S").to_string(),
original: contents.to_string().clone(),
converted
}).is_err() {
println!("App handle add log failed.");
}
self.return_conversion(contents.to_string(), converted, config);
CallbackResult::Next
}
}
impl ClipboardHandler for ConversionHandler {
fn on_clipboard_change(&mut self) -> CallbackResult {
let config = self.get_config();
if let Ok(mut contents) = self.clipboard_ctx.get_contents() {
if config.use_tsf_reconvert {
return self.tsf_conversion(&contents, &config);
}
if contents != self.last_text {
if contents.starts_with(&config.prefix) || config.ignore_prefix {
if config.skip_url && Regex::new(r"(http://|https://){1}[\w\.\-/:\#\?=\&;%\~\+]+").unwrap().is_match(&contents) {
return CallbackResult::Next;
}
let parsed_contents = if config.ignore_prefix { contents } else { contents.split_off(1) };
let converted = match self.conversion.convert_text(&parsed_contents) {
Ok(converted) => converted,
Err(err) => {
println!("Error: {:?}", err);
format!("Error: {:?}", err)
}
};
self.last_text = converted.clone();
fn return_conversion(&mut self, parsed_contents: String, converted: String, config: &Config) {
match config.on_copy_mode {
OnCopyMode::ReturnToClipboard => {
let mut count = 0;
@ -153,6 +107,36 @@ impl ClipboardHandler for ConversionHandler {
}).is_err() {
println!("App handle add log failed.");
}
}
}
impl ClipboardHandler for ConversionHandler {
fn on_clipboard_change(&mut self) -> CallbackResult {
let config = self.get_config();
if let Ok(mut contents) = self.clipboard_ctx.get_contents() {
if config.use_tsf_reconvert {
return self.tsf_conversion(&contents, &config);
}
if contents != self.last_text {
if contents.starts_with(&config.prefix) || config.ignore_prefix {
if config.skip_url && Regex::new(r"(http://|https://){1}[\w\.\-/:\#\?=\&;%\~\+]+").unwrap().is_match(&contents) {
return CallbackResult::Next;
}
let parsed_contents = if config.ignore_prefix { contents } else { contents.split_off(1) };
let converted = match self.conversion.convert_text(&parsed_contents) {
Ok(converted) => converted,
Err(err) => {
println!("Error: {:?}", err);
format!("Error: {:?}", err)
}
};
self.last_text = converted.clone();
self.return_conversion(parsed_contents, converted, &config);
} else {
self.last_text = contents;
}