Compare commits

7 Commits
Author SHA1 Message Date
Sreedev Kodichath a6511f2cf3 Merge pull request #20 from sreedevk/development
Version 0.0.9
2023-01-13 00:55:25 -05:00
sreedev 64d0106765 version changes 2023-01-13 00:53:46 -05:00
Sreedev Kodichath c75b2eb1c9 Merge pull request #17 from ghfghfg23/main
Fix of "thread 'main' panicked at 'range start index 130 out of range…
2023-01-13 00:49:13 -05:00
Andrey Ryabov b736853dfe Take 32 grapheme clusters instead of characters 2023-01-12 21:43:31 +02:00
Sreedev Kodichath 92290480a8 Update README.md 2023-01-11 19:41:23 -05:00
Sreedev Kodichath b7f775e04c Update README.md 2023-01-11 19:39:02 -05:00
Andrey Ryabov 2294471b50 Fix of "thread 'main' panicked at 'range start index 130 out of range for slice of length 104', src/output.rs:21:9" 2023-01-11 23:01:10 +02:00
4 changed files with 20 additions and 16 deletions
Generated
+2 -1
View File
@@ -316,7 +316,7 @@ dependencies = [
[[package]]
name = "deduplicator"
version = "0.0.8"
version = "0.0.9"
dependencies = [
"anyhow",
"chrono",
@@ -334,6 +334,7 @@ dependencies = [
"thiserror",
"tokio",
"tui",
"unicode-segmentation",
]
[[package]]
+2 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "deduplicator"
version = "0.0.8"
version = "0.0.9"
edition = "2021"
description = "find,filter,delete Duplicates"
license = "MIT"
@@ -25,3 +25,4 @@ sqlite = "0.30.3"
thiserror = "1.0.38"
tokio = { version = "1.23.0", features = ["full"] }
tui = "0.19.0"
unicode-segmentation = "1.10.0"
+6 -9
View File
@@ -38,16 +38,13 @@ cargo install deduplicator
<p align="center">
Deduplicator uses fxhash (a non-cryptographic hashing algorithm) which is extremely fast. As a result, deduplicator is able to process huge amounts of data in a couple of seconds.</p>
<p align="center">
While testing, Deduplicator was able to go through 8.6GB of pdf files and detect duplicates in 2.9 seconds
</p>
<p align="center">
While testing, Deduplicator was able to go through 8.6GB of pdf files and detect duplicates in 2.9 seconds
</p>
<h2 align="center">Screenshots</h2>
<p align="center>
<a href="https://asciinema.org/a/oMzGUSlAx32xYXcPBY64uAuLB" target="_blank"><img src="https://asciinema.org/a/oMzGUSlAx32xYXcPBY64uAuLB.svg" /></a>
</p>
<p align="center">
<img align="center" src="https://user-images.githubusercontent.com/36154121/211458077-90092aa3-496c-492f-a061-618059890d5f.png" width="500" height="400" />
</p>
<img src="https://user-images.githubusercontent.com/36154121/211948081-63c12b94-6251-487b-a49f-ac5418169d5a.gif" />
<img src="https://user-images.githubusercontent.com/36154121/211458077-90092aa3-496c-492f-a061-618059890d5f.png" />
+10 -5
View File
@@ -12,15 +12,20 @@ use crate::app::file_manager;
use crate::database::File;
use crate::params::Params;
use prettytable::{format, row, Cell, Row, Table};
use unicode_segmentation::UnicodeSegmentation;
fn format_path(path: &str, opts: &Params) -> Result<String> {
let display_path = path.replace(&opts.get_directory()?, "");
let text_vec = display_path.chars().collect::<Vec<_>>();
let display_range = if text_vec.len() > 32 {
text_vec[(display_path.len() - 32)..]
.iter()
.collect::<String>()
let display_range = if display_path.chars().count() > 32 {
display_path
.graphemes(true)
.collect::<Vec<&str>>()
.into_iter()
.rev()
.take(32)
.rev()
.collect()
} else {
display_path
};