From 2cfc243912e0e102820b9704b11c27c837148dd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= Date: Tue, 2 May 2023 20:55:23 +0200 Subject: [PATCH] Temp --- Cargo.lock | 16 ++++++++-------- czkawka_cli/src/main.rs | 9 +++++---- czkawka_core/src/bad_extensions.rs | 5 ++--- czkawka_core/src/big_file.rs | 5 ++--- czkawka_core/src/broken_files.rs | 6 +++--- czkawka_core/src/common.rs | 12 ++++++++---- czkawka_core/src/common_dir_traversal.rs | 4 +++- czkawka_core/src/duplicate.rs | 2 +- czkawka_core/src/same_music.rs | 2 +- czkawka_core/src/similar_images.rs | 8 ++++---- czkawka_core/src/similar_videos.rs | 7 +++---- czkawka_core/src/temporary.rs | 5 ++--- czkawka_gui/src/compute_results.rs | 1 + .../src/connect_things/connect_button_move.rs | 2 +- .../src/connect_things/connect_button_search.rs | 3 +-- czkawka_gui/src/main.rs | 4 ++-- czkawka_gui/src/notebook_info.rs | 3 ++- 17 files changed, 49 insertions(+), 45 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0cc8b78..1912520 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -57,9 +57,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6342bd4f5a1205d7f41e94a41a901f5647c938cdfa96036338e8533c9d6c2450" +checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" dependencies = [ "anstyle", "anstyle-parse", @@ -389,9 +389,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.2.5" +version = "4.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a1f23fa97e1d1641371b51f35535cb26959b8e27ab50d167a8b996b5bada819" +checksum = "3d70680e56dc65cb226c361aaa4e4a16d1f7e082bfed9ffceaee39c2012384ec" dependencies = [ "clap_builder", "clap_derive", @@ -400,9 +400,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.2.5" +version = "4.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdc5d93c358224b4d6867ef1356d740de2303e9892edc06c5340daeccd96bab" +checksum = "3fad499d5e07338414687350c5fdb82b1ab0001e9b26aa6275deccb684b14164" dependencies = [ "anstream", "anstyle", @@ -3746,9 +3746,9 @@ checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" [[package]] name = "winnow" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5617da7e1f97bf363947d767b91aaf3c2bbc19db7fda9c65af1278713d58e0a2" +checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699" dependencies = [ "memchr", ] diff --git a/czkawka_cli/src/main.rs b/czkawka_cli/src/main.rs index a98ba6d..8f81e92 100644 --- a/czkawka_cli/src/main.rs +++ b/czkawka_cli/src/main.rs @@ -4,10 +4,6 @@ use std::process; use clap::Parser; -use crate::commands::{ - Args, BadExtensionsArgs, BiggestFilesArgs, BrokenFilesArgs, DuplicatesArgs, EmptyFilesArgs, EmptyFoldersArgs, InvalidSymlinksArgs, SameMusicArgs, SimilarImagesArgs, - SimilarVideosArgs, TemporaryArgs, -}; use commands::Commands; use czkawka_core::big_file::SearchMode; use czkawka_core::common::{get_number_of_threads, set_default_number_of_threads}; @@ -28,6 +24,11 @@ use czkawka_core::{ temporary::{self, Temporary}, }; +use crate::commands::{ + Args, BadExtensionsArgs, BiggestFilesArgs, BrokenFilesArgs, DuplicatesArgs, EmptyFilesArgs, EmptyFoldersArgs, InvalidSymlinksArgs, SameMusicArgs, SimilarImagesArgs, + SimilarVideosArgs, TemporaryArgs, +}; + mod commands; fn main() { diff --git a/czkawka_core/src/bad_extensions.rs b/czkawka_core/src/bad_extensions.rs index 5d32adc..f90739d 100644 --- a/czkawka_core/src/bad_extensions.rs +++ b/czkawka_core/src/bad_extensions.rs @@ -2,11 +2,10 @@ use std::collections::{BTreeSet, HashMap}; use std::fs::File; use std::io::prelude::*; use std::io::BufWriter; +use std::mem; use std::path::PathBuf; use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering}; use std::sync::Arc; - -use std::mem; use std::time::SystemTime; use crossbeam_channel::Receiver; @@ -393,7 +392,7 @@ impl BadExtensions { }; let proper_extension = kind.extension(); - let Some(current_extension)= self.get_and_validate_extension(&file_entry, proper_extension) else { + let Some(current_extension) = self.get_and_validate_extension(&file_entry, proper_extension) else { return Some(None); }; diff --git a/czkawka_core/src/big_file.rs b/czkawka_core/src/big_file.rs index cd2e663..cbfc848 100644 --- a/czkawka_core/src/big_file.rs +++ b/czkawka_core/src/big_file.rs @@ -1,12 +1,11 @@ use std::collections::BTreeMap; +use std::fs; use std::fs::{DirEntry, File, Metadata}; use std::io::{BufWriter, Write}; use std::path::{Path, PathBuf}; use std::sync::atomic::AtomicBool; use std::sync::atomic::{AtomicUsize, Ordering}; use std::sync::Arc; - -use std::fs; use std::time::SystemTime; use crossbeam_channel::Receiver; @@ -175,7 +174,7 @@ impl BigFile { // Check every sub folder/file/link etc. for entry in read_dir { - let Some((entry_data,metadata)) = common_get_entry_data_metadata(&entry, &mut warnings, current_folder) else { + let Some((entry_data, metadata)) = common_get_entry_data_metadata(&entry, &mut warnings, current_folder) else { continue; }; diff --git a/czkawka_core/src/broken_files.rs b/czkawka_core/src/broken_files.rs index d57774b..603c640 100644 --- a/czkawka_core/src/broken_files.rs +++ b/czkawka_core/src/broken_files.rs @@ -5,7 +5,6 @@ use std::io::{BufReader, BufWriter}; use std::path::{Path, PathBuf}; use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering}; use std::sync::Arc; - use std::time::SystemTime; use std::{fs, mem, panic}; @@ -91,7 +90,8 @@ pub struct BrokenFiles { stopped_search: bool, checked_types: CheckedTypes, use_cache: bool, - delete_outdated_cache: bool, // TODO add this to GUI + // TODO add this to GUI + delete_outdated_cache: bool, save_also_as_json: bool, } @@ -224,7 +224,7 @@ impl BrokenFiles { // Check every sub folder/file/link etc. for entry in read_dir { - let Some((entry_data,metadata)) = common_get_entry_data_metadata(&entry, &mut warnings, current_folder) else { + let Some((entry_data, metadata)) = common_get_entry_data_metadata(&entry, &mut warnings, current_folder) else { continue; }; diff --git a/czkawka_core/src/common.rs b/czkawka_core/src/common.rs index 783da89..97f8d33 100644 --- a/czkawka_core/src/common.rs +++ b/czkawka_core/src/common.rs @@ -14,13 +14,14 @@ use directories_next::ProjectDirs; use futures::channel::mpsc::UnboundedSender; use image::{DynamicImage, ImageBuffer, Rgb}; use imagepipe::{ImageSource, Pipeline}; +#[cfg(feature = "heif")] +use libheif_rs::{ColorSpace, HeifContext, RgbChroma}; + // #[cfg(feature = "heif")] // use libheif_rs::LibHeif; use crate::common_dir_traversal::{CheckingMethod, ProgressData}; use crate::common_directory::Directories; use crate::common_items::ExcludedItems; -#[cfg(feature = "heif")] -use libheif_rs::{ColorSpace, HeifContext, RgbChroma}; static NUMBER_OF_THREADS: state::Storage = state::Storage::new(); @@ -32,13 +33,16 @@ pub fn get_number_of_threads() -> usize { num_cpus::get() } } + pub fn set_default_number_of_threads() { set_number_of_threads(num_cpus::get()); } + #[must_use] pub fn get_default_number_of_threads() -> usize { num_cpus::get() } + pub fn set_number_of_threads(thread_number: usize) { NUMBER_OF_THREADS.set(thread_number); @@ -182,8 +186,8 @@ pub fn get_dynamic_image_from_raw_image(path: impl AsRef + std::fmt::Debug } }; - let Some(image) = ImageBuffer::, Vec>::from_raw(image.width as u32, image.height as u32, image.data) else { - return None; + let Some(image) = ImageBuffer::, Vec>::from_raw(image.width as u32, image.height as u32, image.data) else { + return None; }; // println!("Properly hashed {:?}", path); diff --git a/czkawka_core/src/common_dir_traversal.rs b/czkawka_core/src/common_dir_traversal.rs index 4140e5d..c318595 100644 --- a/czkawka_core/src/common_dir_traversal.rs +++ b/czkawka_core/src/common_dir_traversal.rs @@ -370,7 +370,7 @@ where // Check every sub folder/file/link etc. 'dir: for entry in read_dir { - let Some((entry_data,metadata)) = common_get_entry_data_metadata(&entry, &mut warnings, current_folder) else { + let Some((entry_data, metadata)) = common_get_entry_data_metadata(&entry, &mut warnings, current_folder) else { continue; }; @@ -692,6 +692,7 @@ pub fn common_read_dir(current_folder: &Path, warnings: &mut Vec) -> Opt } } } + pub fn common_get_entry_data_metadata<'a>(entry: &'a Result, warnings: &mut Vec, current_folder: &Path) -> Option<(&'a DirEntry, Metadata)> { let entry_data = match entry { Ok(t) => t, @@ -715,6 +716,7 @@ pub fn common_get_entry_data_metadata<'a>(entry: &'a Result, current_file_name: &Path, is_folder: bool) -> u64 { match metadata.modified() { Ok(t) => match t.duration_since(UNIX_EPOCH) { diff --git a/czkawka_core/src/duplicate.rs b/czkawka_core/src/duplicate.rs index 8bbd224..33790f1 100644 --- a/czkawka_core/src/duplicate.rs +++ b/czkawka_core/src/duplicate.rs @@ -1494,7 +1494,7 @@ pub fn load_hashes_from_file(text_messages: &mut Messages, delete_outdated_cache open_cache_folder(&get_file_hash_name(type_of_hash, is_prehash), false, false, &mut text_messages.warnings) { // Unwrap could fail when failed to open cache file, but json would exists - let Some(file_handler) = file_handler else { return Default::default() }; + let Some(file_handler) = file_handler else { return Default::default(); }; let reader = BufReader::new(file_handler); let mut hashmap_loaded_entries: BTreeMap> = Default::default(); diff --git a/czkawka_core/src/same_music.rs b/czkawka_core/src/same_music.rs index 44214ab..5af0fad 100644 --- a/czkawka_core/src/same_music.rs +++ b/czkawka_core/src/same_music.rs @@ -424,7 +424,7 @@ impl SameMusic { true } fn read_single_file_tag(&self, path: &str, mut music_entry: MusicEntry) -> Option { - let Ok(mut file) = File::open(path) else{return None}; + let Ok(mut file) = File::open(path) else { return None; }; let result = panic::catch_unwind(move || { match read_from(&mut file) { diff --git a/czkawka_core/src/similar_images.rs b/czkawka_core/src/similar_images.rs index fc1efd1..9d0cfba 100644 --- a/czkawka_core/src/similar_images.rs +++ b/czkawka_core/src/similar_images.rs @@ -2,12 +2,11 @@ use std::collections::{BTreeSet, HashMap, HashSet}; use std::fs::{DirEntry, File, Metadata}; use std::io::Write; use std::io::*; +use std::mem; use std::panic; use std::path::{Path, PathBuf}; use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering}; use std::sync::Arc; - -use std::mem; use std::time::SystemTime; use bk_tree::BKTree; @@ -92,7 +91,8 @@ pub struct SimilarImages { recursive_search: bool, minimal_file_size: u64, maximal_file_size: u64, - image_hashes: HashMap>, // Hashmap with image hashes and Vector with names of files + image_hashes: HashMap>, + // Hashmap with image hashes and Vector with names of files stopped_search: bool, similarity: u32, images_to_check: HashMap, @@ -318,7 +318,7 @@ impl SimilarImages { }; for entry in read_dir { - let Some((entry_data,metadata)) = common_get_entry_data_metadata(&entry, &mut warnings, current_folder) else { + let Some((entry_data, metadata)) = common_get_entry_data_metadata(&entry, &mut warnings, current_folder) else { continue; }; diff --git a/czkawka_core/src/similar_videos.rs b/czkawka_core/src/similar_videos.rs index 8c326d4..aaba58c 100644 --- a/czkawka_core/src/similar_videos.rs +++ b/czkawka_core/src/similar_videos.rs @@ -2,11 +2,10 @@ use std::collections::{BTreeMap, BTreeSet, HashMap}; use std::fs::{DirEntry, File, Metadata}; use std::io::Write; use std::io::*; +use std::mem; use std::path::{Path, PathBuf}; use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering}; use std::sync::Arc; - -use std::mem; use std::time::SystemTime; use crossbeam_channel::Receiver; @@ -283,7 +282,7 @@ impl SimilarVideos { // Check every sub folder/file/link etc. for entry in read_dir { - let Some((entry_data,metadata)) = common_get_entry_data_metadata(&entry, &mut warnings, current_folder) else { + let Some((entry_data, metadata)) = common_get_entry_data_metadata(&entry, &mut warnings, current_folder) else { continue; }; @@ -327,7 +326,7 @@ impl SimilarVideos { fn add_video_file_entry(&self, metadata: &Metadata, entry_data: &DirEntry, fe_result: &mut Vec<(String, FileEntry)>, warnings: &mut Vec, current_folder: &Path) { let Some(file_name_lowercase) = get_lowercase_name(entry_data, warnings) else { - return; + return; }; if !self.allowed_extensions.matches_filename(&file_name_lowercase) { diff --git a/czkawka_core/src/temporary.rs b/czkawka_core/src/temporary.rs index cdf5659..fa07713 100644 --- a/czkawka_core/src/temporary.rs +++ b/czkawka_core/src/temporary.rs @@ -1,11 +1,10 @@ +use std::fs; use std::fs::{DirEntry, File, Metadata}; use std::io::prelude::*; use std::io::BufWriter; use std::path::{Path, PathBuf}; use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering}; use std::sync::Arc; - -use std::fs; use std::time::SystemTime; use crossbeam_channel::Receiver; @@ -175,7 +174,7 @@ impl Temporary { // Check every sub folder/file/link etc. for entry in read_dir { - let Some((entry_data,metadata)) = common_get_entry_data_metadata(&entry, &mut warnings, current_folder) else { + let Some((entry_data, metadata)) = common_get_entry_data_metadata(&entry, &mut warnings, current_folder) else { continue; }; diff --git a/czkawka_gui/src/compute_results.rs b/czkawka_gui/src/compute_results.rs index e1f3a8e..9ec02d3 100644 --- a/czkawka_gui/src/compute_results.rs +++ b/czkawka_gui/src/compute_results.rs @@ -1345,6 +1345,7 @@ fn vector_sort_unstable_entry_by_path(vector: &Vec) -> Vec vector.clone() } } + fn vector_sort_simple_unstable_entry_by_path(vector: &[FileEntry]) -> Vec { let mut vector = vector.to_owned(); vector.sort_unstable_by_key(|e| { diff --git a/czkawka_gui/src/connect_things/connect_button_move.rs b/czkawka_gui/src/connect_things/connect_button_move.rs index 2f9b64e..2c1d500 100644 --- a/czkawka_gui/src/connect_things/connect_button_move.rs +++ b/czkawka_gui/src/connect_things/connect_button_move.rs @@ -1,6 +1,6 @@ -use fs_extra::dir::CopyOptions; use std::path::{Path, PathBuf}; +use fs_extra::dir::CopyOptions; use gtk4::prelude::*; use gtk4::{ResponseType, TreePath}; diff --git a/czkawka_gui/src/connect_things/connect_button_search.rs b/czkawka_gui/src/connect_things/connect_button_search.rs index 4ae5311..4f7bc62 100644 --- a/czkawka_gui/src/connect_things/connect_button_search.rs +++ b/czkawka_gui/src/connect_things/connect_button_search.rs @@ -1,15 +1,14 @@ -use futures::channel::mpsc::UnboundedSender; use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::Arc; use std::thread; +use futures::channel::mpsc::UnboundedSender; use glib::Sender; use gtk4::prelude::*; use czkawka_core::bad_extensions::BadExtensions; use czkawka_core::big_file::BigFile; use czkawka_core::broken_files::{BrokenFiles, CheckedTypes}; - use czkawka_core::common_dir_traversal::ProgressData; use czkawka_core::duplicate::DuplicateFinder; use czkawka_core::empty_files::EmptyFiles; diff --git a/czkawka_gui/src/main.rs b/czkawka_gui/src/main.rs index d0ec0a8..c45ef87 100644 --- a/czkawka_gui/src/main.rs +++ b/czkawka_gui/src/main.rs @@ -5,11 +5,11 @@ #![allow(clippy::type_complexity)] #![allow(clippy::needless_late_init)] -use futures::channel::mpsc; -use futures::channel::mpsc::{UnboundedReceiver, UnboundedSender}; use std::env; use std::ffi::OsString; +use futures::channel::mpsc; +use futures::channel::mpsc::{UnboundedReceiver, UnboundedSender}; use gtk4::gio::ApplicationFlags; use gtk4::prelude::*; use gtk4::Application; diff --git a/czkawka_gui/src/notebook_info.rs b/czkawka_gui/src/notebook_info.rs index 95aba44..cd7c8e1 100644 --- a/czkawka_gui/src/notebook_info.rs +++ b/czkawka_gui/src/notebook_info.rs @@ -1,9 +1,10 @@ +use glib::types::Type; + use crate::help_functions::{ BottomButtonsEnum, ColumnsBadExtensions, ColumnsBigFiles, ColumnsBrokenFiles, ColumnsDuplicates, ColumnsEmptyFiles, ColumnsEmptyFolders, ColumnsInvalidSymlinks, ColumnsSameMusic, ColumnsSimilarImages, ColumnsSimilarVideos, ColumnsTemporaryFiles, PopoverTypes, }; use crate::notebook_enums::{NotebookMainEnum, NUMBER_OF_NOTEBOOK_MAIN_TABS}; -use glib::types::Type; pub struct NotebookObject { pub notebook_type: NotebookMainEnum,