From 72ef0912aaf471ffa2d20a3f6c993ab4c982f30a Mon Sep 17 00:00:00 2001 From: Mist Date: Fri, 23 Feb 2024 17:17:07 +0800 Subject: [PATCH] [Chore] clear dead code (#9) * [Chore] clear dead code * [Delete] unused dependencies --- snap-server/Cargo.lock | 313 +------------------------------ snap-server/Cargo.toml | 1 - snap-server/src/clipboard.rs | 21 --- snap-server/src/event_handler.rs | 35 +--- snap-server/src/main.rs | 8 +- snap-server/src/server.rs | 7 +- snap-server/src/session.rs | 14 +- 7 files changed, 13 insertions(+), 386 deletions(-) delete mode 100644 snap-server/src/clipboard.rs diff --git a/snap-server/Cargo.lock b/snap-server/Cargo.lock index 2de3bbd..0224eee 100644 --- a/snap-server/Cargo.lock +++ b/snap-server/Cargo.lock @@ -88,7 +88,7 @@ dependencies = [ "flate2", "futures-core", "h2", - "http 0.2.11", + "http", "httparse", "httpdate", "itoa", @@ -123,7 +123,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d22475596539443685426b6bdadb926ad0ecaefdfc5fb05e5e3441f15463c511" dependencies = [ "bytestring", - "http 0.2.11", + "http", "regex 1.10.3", "serde", "tracing", @@ -325,12 +325,6 @@ dependencies = [ "alloc-no-stdlib", ] -[[package]] -name = "anyhow" -version = "1.0.80" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" - [[package]] name = "arboard" version = "3.3.1" @@ -350,20 +344,6 @@ dependencies = [ "x11rb", ] -[[package]] -name = "auto_generate_cdp" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7af08ed49930c50104b2f1699d257e5053fb1809e370647bde9c58b31d65d417" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "serde", - "serde_json", - "ureq", -] - [[package]] name = "autocfg" version = "1.1.0" @@ -671,47 +651,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "darling" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" -dependencies = [ - "darling_core", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "data-encoding" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" - [[package]] name = "deflate" version = "0.7.20" @@ -731,37 +670,6 @@ dependencies = [ "powerfmt", ] -[[package]] -name = "derive_builder" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" -dependencies = [ - "derive_builder_macro", -] - -[[package]] -name = "derive_builder_core" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_builder_macro" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" -dependencies = [ - "derive_builder_core", - "syn 1.0.109", -] - [[package]] name = "derive_more" version = "0.99.17" @@ -847,12 +755,6 @@ dependencies = [ "zune-inflate", ] -[[package]] -name = "fastrand" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" - [[package]] name = "fdeflate" version = "0.3.4" @@ -1033,7 +935,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http 0.2.11", + "http", "indexmap", "slab", "tokio", @@ -1057,29 +959,6 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" -[[package]] -name = "headless_chrome" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05dec19562a4024376a8a13c3a1b40a3b8006c5bb35c43f7d62d672cfe7b943c" -dependencies = [ - "anyhow", - "auto_generate_cdp", - "base64 0.21.7", - "derive_builder", - "log", - "rand 0.8.5", - "regex 1.10.3", - "serde", - "serde_json", - "tempfile", - "thiserror", - "tungstenite", - "url", - "which", - "winreg", -] - [[package]] name = "home" version = "0.5.9" @@ -1100,17 +979,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - [[package]] name = "http-range" version = "0.1.5" @@ -1129,12 +997,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - [[package]] name = "idna" version = "0.5.0" @@ -1791,21 +1653,6 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if 1.0.0", - "getrandom", - "libc", - "spin", - "untrusted", - "windows-sys 0.52.0", -] - [[package]] name = "rmp" version = "0.8.12" @@ -1876,37 +1723,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "rustls" -version = "0.22.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" -dependencies = [ - "log", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pki-types" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "048a63e5b3ac996d78d402940b5fa47973d2d080c6c6fffa1d0f19c4445310b7" - -[[package]] -name = "rustls-webpki" -version = "0.102.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - [[package]] name = "ryu" version = "1.0.16" @@ -2042,7 +1858,6 @@ dependencies = [ "actix-web", "actix-web-actors", "arboard", - "headless_chrome", "image 0.24.8", "image-base64", "neovim-lib", @@ -2062,17 +1877,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "socks" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c3dbbd9ae980613c6dd8e28a9407b50509d3803b57624d5dfe8315218cd58b" -dependencies = [ - "byteorder", - "libc", - "winapi", -] - [[package]] name = "spin" version = "0.9.8" @@ -2082,18 +1886,6 @@ dependencies = [ "lock_api", ] -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" - [[package]] name = "syn" version = "1.0.109" @@ -2116,18 +1908,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "tempfile" -version = "3.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67" -dependencies = [ - "cfg-if 1.0.0", - "fastrand", - "rustix", - "windows-sys 0.52.0", -] - [[package]] name = "thiserror" version = "1.0.57" @@ -2276,25 +2056,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "tungstenite" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 1.0.0", - "httparse", - "log", - "rand 0.8.5", - "sha1", - "thiserror", - "url", - "utf-8", -] - [[package]] name = "typenum" version = "1.17.0" @@ -2347,30 +2108,6 @@ dependencies = [ "libc", ] -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "ureq" -version = "2.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f214ce18d8b2cbe84ed3aa6486ed3f5b285cf8d8fbdbce9f3f767a724adc35" -dependencies = [ - "base64 0.21.7", - "flate2", - "log", - "once_cell", - "rustls", - "rustls-pki-types", - "rustls-webpki", - "socks", - "url", - "webpki-roots", -] - [[package]] name = "url" version = "2.5.0" @@ -2382,12 +2119,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - [[package]] name = "utf8-ranges" version = "1.0.5" @@ -2509,34 +2240,12 @@ dependencies = [ "web-sys", ] -[[package]] -name = "webpki-roots" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "weezl" version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" -[[package]] -name = "which" -version = "5.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bf3ea8596f3a0dd5980b46430f2058dfe2c36a27ccfbb1845d6fbfcd9ba6e14" -dependencies = [ - "either", - "home", - "once_cell", - "rustix", - "windows-sys 0.48.0", -] - [[package]] name = "winapi" version = "0.3.9" @@ -2766,16 +2475,6 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" -[[package]] -name = "winreg" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" -dependencies = [ - "cfg-if 1.0.0", - "windows-sys 0.48.0", -] - [[package]] name = "x11rb" version = "0.13.0" @@ -2813,12 +2512,6 @@ dependencies = [ "syn 2.0.48", ] -[[package]] -name = "zeroize" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" - [[package]] name = "zstd" version = "0.13.0" diff --git a/snap-server/Cargo.toml b/snap-server/Cargo.toml index d30d775..7965fc2 100644 --- a/snap-server/Cargo.toml +++ b/snap-server/Cargo.toml @@ -9,7 +9,6 @@ actix-files = "0.6.5" actix-web = "4.5.1" actix-web-actors = "4.3.0" arboard = "3.3.1" -headless_chrome = "1.0.9" image = "0.24.8" image-base64 = "0.1.0" neovim-lib = "0.6.1" diff --git a/snap-server/src/clipboard.rs b/snap-server/src/clipboard.rs deleted file mode 100644 index fc80be2..0000000 --- a/snap-server/src/clipboard.rs +++ /dev/null @@ -1,21 +0,0 @@ -use arboard::Clipboard; -use arboard::ImageData; -use image::load_from_memory; - -pub fn copy_base64_image_into_clipboard(base64_image: String) { - copy_memory_image_into_clipboard(&image_base64::from_base64(base64_image)) -} - -pub fn copy_memory_image_into_clipboard(buffer: &Vec) { - let dynamic_image = load_from_memory(buffer).unwrap(); - - let image = ImageData { - width: dynamic_image.width() as usize, - height: dynamic_image.height() as usize, - bytes: dynamic_image.as_bytes().into(), - }; - - let mut clipboard = Clipboard::new().unwrap(); - - clipboard.set_image(image).unwrap(); -} diff --git a/snap-server/src/event_handler.rs b/snap-server/src/event_handler.rs index 0558407..e1a4e70 100644 --- a/snap-server/src/event_handler.rs +++ b/snap-server/src/event_handler.rs @@ -6,14 +6,10 @@ pub mod neovim; use actix::{Actor, Addr, Context}; use arguments::parse_string_first; pub use config::Config; -use headless_chrome::{protocol::cdp::Page, Browser, Tab}; pub use messages::Message; use neovim::Neovim; -use serde_json::{json, Value}; -use std::{ - error::Error, - sync::{Arc, Mutex}, -}; +use serde_json::Value; +use std::sync::{Arc, Mutex}; use crate::{ event::Event, @@ -43,39 +39,16 @@ impl EventHandler { } } - pub fn open_browser(&self) -> Result, Box> { - let browser = Browser::default()?; - - let tab = browser.new_tab()?; - - tab.navigate_to(format!("http://localhost:{}", self.port).as_str())?; - - Ok(tab) - } - pub fn start_listen(&mut self) { let receiver = self.neovim.lock().unwrap().create_receiver(); for (event_name, values) in receiver { - // self.neovim.lock().unwrap().print(&event_name); - match Message::from(event_name.clone()) { Message::OpenPreview => { let _ = webbrowser::open(format!("http://localhost:{}", self.port).as_str()); } - Message::Copy => { - // let _png_data = tab - // .wait_for_element("#frame") - // .unwrap() - // .capture_screenshot(Page::CaptureScreenshotFormatOption::Png) - // .unwrap(); - // - // std::fs::write("hello_world.png", _png_data).unwrap(); - - // self.server.do_send(ClientMessage { - // msg: Event::new("copy", json!("{}")).into(), - // }) - } + // The Copy message is not implement yet, but will support in the future + Message::Copy => {} Message::PreviewCode => self.server.do_send(ClientMessage { msg: Event::new( "code", diff --git a/snap-server/src/main.rs b/snap-server/src/main.rs index 4480d0f..a922cd9 100644 --- a/snap-server/src/main.rs +++ b/snap-server/src/main.rs @@ -1,14 +1,10 @@ -mod clipboard; mod event; mod event_handler; mod port; mod server; mod session; -use std::{ - net::TcpListener, - sync::{Arc, Mutex}, -}; +use std::sync::{Arc, Mutex}; use actix::{Actor, Addr, Arbiter}; use actix_files::{Files, NamedFile}; @@ -17,10 +13,8 @@ use actix_web::{ App, Error, HttpRequest, HttpResponse, HttpServer, Responder, }; use actix_web_actors::ws; -use clipboard::copy_memory_image_into_clipboard; use event_handler::neovim::Neovim; use event_handler::EventHandler; -use headless_chrome::{protocol::cdp::Page, Browser, Tab}; use port::get_available_port; use server::Server; use session::Session; diff --git a/snap-server/src/server.rs b/snap-server/src/server.rs index f080c17..a417290 100644 --- a/snap-server/src/server.rs +++ b/snap-server/src/server.rs @@ -44,16 +44,17 @@ pub struct ConfigSetupMessage { pub struct Server { rng: ThreadRng, sessions: HashMap>, - neovim: Arc>, + // The neovim instance used for send message to neovim client + _neovim: Arc>, config: Option, } impl Server { - pub fn new(neovim: Arc>) -> Server { + pub fn new(_neovim: Arc>) -> Server { Server { rng: rand::thread_rng(), sessions: HashMap::new(), - neovim, + _neovim, config: None, } } diff --git a/snap-server/src/session.rs b/snap-server/src/session.rs index ca87f92..1c11907 100644 --- a/snap-server/src/session.rs +++ b/snap-server/src/session.rs @@ -13,10 +13,6 @@ use std::{ const HEARTBEAT_INTERVAL: Duration = Duration::from_secs(5); const CLIENT_TIMEOUT: Duration = Duration::from_secs(30); -fn is_valid_base64_image(base64_image: &str) -> bool { - base64_image.starts_with("data:image/png;base64") -} - pub struct Session { id: usize, server: Arc>, @@ -91,15 +87,7 @@ impl StreamHandler> for Session { Ok(ws::Message::Pong(_)) => { self.heartbeat = Instant::now(); } - Ok(ws::Message::Text(text)) => { - // let image = text.to_string(); - - // if !is_valid_base64_image(&image) { - ctx.text(text) - // } - - // copy_base64_image_into_clipboard(image); - } + Ok(ws::Message::Text(text)) => ctx.text(text), Ok(ws::Message::Binary(bin)) => ctx.binary(bin), _ => (), }