Commit Graph

295 Commits (master)

Author SHA1 Message Date
Peter Blackson db47e8b711
Use DirTraversal for empty folders (#544) 2 years ago
Peter Blackson 51df63b8ea
Implement DirTraversal (#531)
* Implement DirTraversal

* rustfmt

* Fix for options

* Fix entries

* Fix symlinks

* Fix other entry type
2 years ago
Rafał Mikrut 0f0e7a338f
[WIP] Add raw images support (#532)
* Add raw images support

* Potato

* Update
2 years ago
Rafał Mikrut de964ce40d
Handle image crashes (#530)
* Don't crash when checking images

* Don't crash when checking images

* Don't crash when checking images

* HERE

* REME

* REE
2 years ago
Rafał Mikrut 382f12acb3
Fast compare option (#529) 2 years ago
Rafał Mikrut 7da578fa7f
Optimize a little image compare algorithm (#528)
* Split checking images at 2 functions

* Optimize a little image finding

* 1.54.0 farawell
2 years ago
Rafał Mikrut d8dc176e63 Small changes and fixes 2 years ago
Rafał Mikrut 1f5fca3f46
Add new step to check progress of comparing images. (#525)
Fix empty loaded items in e.g. Excluded Directories.
Fix bug with non-loading proper image results
2 years ago
Rafał Mikrut c4f26883b1
Add reference folders (#516)
* Add reference folder

* Basic tree view cleaning

* Computations

* Similar Images

* Muzyka i Wideo

* Podwójne dwa razy, cztery razy!

* Rozmiar i Nazwa

* Spanko i działanko(przynajmniej zdaje mi się że działa)

* Translatanko
2 years ago
Rafał Mikrut 5db5d17afb
Use max line length 180 instead 250 (#515)
This was a little too big value.
I don't like too much too small values, because code looks ugly.
2 years ago
Rafał Mikrut fbb25c31b8
Ignore ascii non alphabetic characters in approximate search (#513) 2 years ago
Rafał Mikrut 0a924d2355
Improve translations (#507)
* Improve translations

* Imports
2 years ago
Rafał Mikrut c8ade1fb0f
Use system language when available (#506)
* Use system language when available

* Use clippy nightly
2 years ago
Rafał Mikrut 619e64466c
More GTK4 compatibility fixes (#503)
* Don't create new treeview

* Dont

* ABC

* Detlaff

* Update
2 years ago
Rafał Mikrut cf668d02a7
Implement threaded search in rest of modes(except empty folders) (#504)
* Implement threaded search in rest of modes(except empty folders)

* Add more tools in gui to use allowed extension

* Change progress window to modal

* Nazair

* Clippy
2 years ago
Peter Blackson 859e01b30e
Parallel BFS with Rayon (#502)
* Tester

* Parallel BFS with Rayon

* Rustfmt

* Refactor code

* Use `extend` instead of `append`

* Remove no longer needed derives
2 years ago
Rafał Mikrut c041ab416e
Better ignore same size files (#501) 2 years ago
Rafał Mikrut 975b285c1f
Make UI take less space (#500) 2 years ago
Rafał Mikrut 89f24f14b5
Use translated strings in more places (#498) 2 years ago
Rafał Mikrut 77a48ca6aa
Add support for translations (#469)
* Reformat code with idea tool

* Pierwsza działająca wersja tłumaczeń

* Działa? I dobrze, bo ma działać

* Ćma szła i się potkła

* Ściął śmiałek źółty rząd pąków.
2 years ago
Rafał Mikrut 5f774e03bd
Add button to ignore images with non unique size. (#493)
This will help with finding different images(non 1:1 which could be easily found by duplicate finder tool)
2 years ago
Rafał Mikrut a8aa8a2a23
Multiple small changes (#490) 2 years ago
Farmadupe 88b8f11e07
Cache vidoes with serde to avoid forked vid_dup_finder_lib (#486)
* Cache vidoes with serde to avoid forked vid_dup_finder_lib

* Fix clippy lint.

* Replace json serialization with bincode for videos
2 years ago
Rafał Mikrut 5296e1c708
Better comparison of music tags (#485) 2 years ago
Rafał Mikrut ce3d86fd4e
Approximate comparison of music (#483) 2 years ago
Rafał Mikrut f334bd6975
Add better custom selecting (#479) 2 years ago
Rafał Mikrut bb428171cb
Add better custom selecting (#478) 2 years ago
Rafał Mikrut 1fd53b854b
Add prehash cache support (#477) 2 years ago
Rafał Mikrut 51271dcdf0
Remove HashMB mode (#476)
* Remove HashMB mode

* Add some explanation and remove this from GUI

* Not needing to handle everything
2 years ago
Rafał Mikrut 4871016a3c
Add option to not remove outdated cache entries (#472)
* Add option to not remove outdated cache entries

* Default duplicates cache size lowered to 512 KB

* Add some tooltips,
Add logic to opening cache/config folders

* Add option to clear cache files from outdated results(manually)
3 years ago
Rafał Mikrut f2333b9df2
Save to cache info about broken, too short etc. images and videos (#471) 3 years ago
Rafał Mikrut cf2e822435 Reformat code with idea tool 3 years ago
Rafał Mikrut b7e4eaccaf Modified include organization 3 years ago
Rafał Mikrut d302c3b2d8 Update cache creating 3 years ago
Rafał Mikrut 78b49dee3d
Remove support for zeroed files (#461) 3 years ago
Rafał Mikrut 29129d3ec0
Support for finding similar videos (#460)
* Add support for similar videos to CLI

* Add GUI support for similar videos

* Video duplicates

* git_dup

* Documentation
3 years ago
Rafał Mikrut 4a202633ee Release 3.3.1 3 years ago
Rafał Mikrut 9d28fb8a59 Release 3.3.0 3 years ago
Rafał Mikrut 052711bb4b
Add button for moving files/folders to choosen folder (#449)
* Add button for moving files/folders to choosen folder

* Add support for moving folders to other locations
3 years ago
Rafał Mikrut 49effca169 Disable partially supported webp<
Disable unrecognized pnm files
3 years ago
Rafał Mikrut 96e7af0d25
Add support for multiple hashes in similar images to GUI (#448)
* Add support for multiple hashes in similar images to GUI

* Needs a little more testing

* General fixes
3 years ago
Rafał Mikrut 20c89f44f0
Adds support for multiple hashes type and size in similar images, resize formats and also test to check performacne (#447) 3 years ago
Rafał Mikrut 742139379c
Add better errors explanation(native from libraries) (#446) 3 years ago
Rafał Mikrut dc8c14ea3c
Disable crashing image extensions (#445)
Bump minimal Rust to 1.53.0
Update Packages
3 years ago
Rafał Mikrut 243505b692 Release 3.2.0 3 years ago
Rafał Mikrut a92a113714
Add maximum file size (#407)
* Add maximum file size

* Add maximum file size
3 years ago
Rafał Mikrut 909967dcd8
Update BKtree and blake3 and add new grouping algorithm (#405)
* Update BKtree and blake3

* Add new algorithm for similar images

* Improve algorithm of grouping similar images
3 years ago
Rafał Mikrut da76f75e11
Update Rust to 1.54 (#400) 3 years ago
tecome a342ddfba7
Add webp support to similar images (#396) 3 years ago
Rafał Mikrut 0e9b8a1651
Use GtkScale instead radio buttons for similarity (#397)
* Use GtkScale instead radio buttons for similarity

* Fixes
3 years ago
Rafał Mikrut a623f2be00
Update all dependencies except trash which don't crosscompile on Windows (#395)
* Update all dependencies except trash which don't crosscompile on Windows
3 years ago
Rafał Mikrut b5f8d6b028
Update to gtk-rs 0.14 (#383)
* Update to Gtk-rs 0.14
3 years ago
Rafał Mikrut 237d879f03 Release 3.1.0 3 years ago
Rafał Mikrut cc0dcc2714
Fix excluded items on Windows (#324) 3 years ago
Rafał Mikrut 4fc8655272
Sort cache and allow to optimize later other code (#322) 3 years ago
Rafał Mikrut b08cedd5a6
Allow to set minimal file size to caching (#321) 3 years ago
Rafał Mikrut 775b6b4f10
Fix crashes with too small message queue (#316) 3 years ago
Rafał Mikrut 0fa6692d39
Fix error with saving results of name duplicates (#307) 3 years ago
Rafał Mikrut 50ad3f9873
Update to Rust 1.5.1 (#302) 3 years ago
Rafał Mikrut ce8161fd7e Release 3.0.0 3 years ago
Douman 67a07f1f98
Use xxhash-rust >=0.8.2 to avoid bug in stateful implementation (#283) 3 years ago
Rafał Mikrut 0bbe9fe4a3 Revert "Disable for now broken tga and gif files (#270)"
This reverts commit 87f5ca63
3 years ago
Rafał Mikrut 17f97bd958
Add option to turn off cache (#263) 3 years ago
Thomas Andreas Jung 1d904a858e
Dryrun for duplicates (#277)
```
    czkawka_cli dup --dryrun -d $(pwd)/folder -m1 -D aen
    Found 2 duplicated files in 1 groups with same content which took 2 B:
    Size - 2 B (2) - 2 files
    /home/thomas/Development/czkawka/folder/a
    /home/thomas/Development/czkawka/folder/b
    ----

    -------------------------------MESSAGES--------------------------------
    Delete /home/thomas/Development/czkawka/folder/a
    Delete /home/thomas/Development/czkawka/folder/b
    ---------------------------END OF MESSAGES-----------------------------
    ```
3 years ago
Thomas Andreas Jung ed7b197100
Use one implementation for all duplicate file removales (#278) 3 years ago
Rafał Mikrut 13add1cbed
Add hardlinking support for GUI (#276) 3 years ago
Rafał Mikrut 4c770b582b
Add option to not ignore hard links (#273) 3 years ago
Rafał Mikrut 7ea0126525 Release 2.4.0 3 years ago
Rafał Mikrut 87f5ca63b9
Disable for now broken tga and gif files (#270) 3 years ago
Thomas Andreas Jung e3457edab2
Use one implementation for all hash calculations (#268)
All implementations are the same they only differ by hasher and the file read
limit.
3 years ago
Thomas Andreas Jung 1e94587de8
Ignore duplicates if those are hard links (#234)
This is a proof of concept.

```
$ echo a > hardlinks/a
$ cp hardlinks/{a,b}
$ ln hardlinks/{a,c}
$ cargo run --bin czkawka_cli dup -m 1 --directories $(pwd)/hardlinks -f /dev/stderr > /dev/null
-------------------------------------------------Files with same hashes-------------------------------------------------
Found 1 duplicated files which in 1 groups which takes 2 B.

---- Size 2 B (2) - 2 files
/home/thomas/Development/czkawka/hardlinks/a
/home/thomas/Development/czkawka/hardlinks/b
```

Open:
- Windows support
- Probably this should be a cli option
3 years ago
Thomas Andreas Jung 03d41e173f
Keep original file if replacing duplicate with hardlink fails (#253)
If the user could not create a hard link (due to permissions or
different block devices) then czkawka lost the duplicate file.

```
$ mkdir hardlink
$ cd hardlink
$ echo a > a
$ cp a b
$ chown thetestuser:thetestuser a
$ ls -il .

25169246 -rw-rw-r-- 1 thetestuser thetestuser 2 Feb  7 11:18 a
25169641 -rw-rw-r-- 1 thomas      thomas      2 Feb  7 11:18 b

$ cargo run --bin czkawka_cli dup --directories $(pwd) -m 1 -f
test101.result --delete-method HARD

[...]
-------------------------------WARNINGS--------------------------------
Failed to link /home/thomas/Development/czkawka/hardlink/b ->
/home/thomas/Development/czkawka/hardlink/a
---------------------------END OF WARNINGS-----------------------------

$ ls -il .
25169246 -rw-rw-r-- 1 thetestuser thetestuser 2 Feb  7 11:18 a
```

Now czkawka keeps all files and the warning provides more information
why czkawka can't replace the duplicate with a hard link.

```
$ cargo run --bin czkawka_cli dup --directories $(pwd) -m 1 -f
test101.result --delete-method HARD

-------------------------------WARNINGS--------------------------------
Failed to link /home/thomas/Development/czkawka/hardlink/b ->
/home/thomas/Development/czkawka/hardlink/a (Operation not permitted (os
error 1))
---------------------------END OF WARNINGS-----------------------------
[...]

25169246 -rw-rw-r-- 1 thetestuser thetestuser 2 Feb  7 11:18 a
25169641 -rw-rw-r-- 1 thomas      thomas      2 Feb  7 11:18 b
```
3 years ago
Rafał Mikrut 10156ccfd3 Uncomment code about saving similar images result to file 3 years ago
Rafał Mikrut df44f9c342
Update list of checked images (#252) 3 years ago
Rafał Mikrut 9bb574235a
Add checking for broken music opt-in (#249) 3 years ago
Thomas Andreas Jung 3ffa55b008
Add delete method to replace duplicate files with hard links (#236)
This results in the same space saving but keeps the "deleted" files around.

$ mkdir hardlink
$ cd hardlink
$ echo a > a
$ cp a b
$ ln a c
$ touch -t 01010000 a
$ ls -il --time-style=full-iso .
25169323 -rw-rw-r-- 2 thomas thomas 2 2021-01-01 00:00:00.000000000 +0100 a
25169558 -rw-rw-r-- 1 thomas thomas 2 2021-01-31 18:11:08.298161098 +0100 b
25169323 -rw-rw-r-- 2 thomas thomas 2 2021-01-01 00:00:00.000000000 +0100 c

$ czkawka_cli dup --directories $(pwd)/hardlink -m 1 -f hardlink.result --delete-method HARD

$ ls --time-style=full-iso -li hardlink
25169323 -rw-rw-r-- 3 thomas thomas 2 2021-01-01 00:00:00.000000000 +0100 a
25169323 -rw-rw-r-- 3 thomas thomas 2 2021-01-01 00:00:00.000000000 +0100 b
25169323 -rw-rw-r-- 3 thomas thomas 2 2021-01-01 00:00:00.000000000 +0100 c
3 years ago
Rafał Mikrut 9f3da0e70f
Add support for CRC32 and XXH3 hash (#243) 3 years ago
Rafał Mikrut 7d8334bb0c
Add template for multiple hashes (#240) 3 years ago
Rafał Mikrut b8049efe62
Remove checking for ico in similar images (#227) 3 years ago
Rafał Mikrut 49ddc041ee
Add about dialog (#226) 3 years ago
Rafał Mikrut bb7bf12354 Release 2.3.2 3 years ago
Rafał Mikrut 69090755df Release 2.3.1 3 years ago
Rafał Mikrut 943f8f78f1 Release 2.3.0 3 years ago
Rafał Mikrut e1beaeed28
Decrease ram usage (#212) 3 years ago
Rafał Mikrut cc8d42e0ff
Add support for finding broken zip and audio files (#210) 3 years ago
Rafał Mikrut 7ec665ab7a
Add cache for duplicate (#205) 3 years ago
Rafał Mikrut 6e89bcb507
Add cache for broken files (#204) 3 years ago
Rafał Mikrut eeaaea20cc
Add broken files support (#202) 3 years ago
Rafał Mikrut 1a011644bf
Remove save workaround and fix crashes (#200) 3 years ago
Rafał Mikrut da4bdd19e2 Release 2.2.0 3 years ago
Rafał Mikrut 80bbc9ba85
Move image cache to cache from config dir (#197) 3 years ago
Rafał Mikrut 7992ba30de
Fix included/excluded files which contains commas (#195) 3 years ago
Rafał Mikrut 9975605f75
Add buffered write/read (#186) 3 years ago
Rafał Mikrut 3adbfdc5b6
Remove some debug variables (#185) 3 years ago
Rafał Mikrut 8d4a264c6d
Use master gtk plugin again (#179)
* Use master gtk plugin again
3 years ago
Rafał Mikrut 72d74dd8e2
Adds Mac GUI (#160)
* Adds Mac GUI

* Update Rust to 1.4.9
3 years ago
Rafał Mikrut 4eefe114dd Release 2.1.0 3 years ago
Rafał Mikrut 083db7aa51
Add manual adding of directories (#165) 3 years ago
Rafał Mikrut 10c32c90c0
Add support for delete button (#159) 3 years ago
Rafał Mikrut 33545dfa22
Fix using empty hash (#140) 3 years ago
Rafał Mikrut 3f333e7ceb
Add cache support for similar images (#139) 3 years ago
Rafał Mikrut 123bba381f Release 2.0.0 3 years ago
Rafał Mikrut 05c8153b1a Add more default excluded items 3 years ago
Rafał Mikrut 880787a67f
Show errors in image previewer when failed to generate it (#130) 3 years ago
Rafał Mikrut 5672431257
Add minimal similarity level (#129) 3 years ago
Rafał Mikrut 4e3a6f63fe
Add new windows dark theme (#125) 3 years ago
Rafał Mikrut 1d59199bb2
Add support for checking for invalid symlinks (#124) 3 years ago
Rafał Mikrut 40f981dcd3
Add custom selection/unselection (#117) 3 years ago
Rafał Mikrut f0f3073f94 Release version 1.5.1 3 years ago
Rafał Mikrut e6a6e5567b Release 1.5.0 4 years ago
Rafał Mikrut 7ac4a26229
Add progress bar (#106) 4 years ago
Rafał Mikrut 4dfb960e85 Small cosmetic changes to readme and similar images
Also added support for m4a music tags
4 years ago
Rafał Mikrut c62617df30 Release 1.4.0 4 years ago
Rafał Mikrut 29a0716be5
Add very small similarity level to finding similar images, add option to choose level from CLI, fix bug with duplicated entries in similar pictures (#104) 4 years ago
Rafał Mikrut 88d47e49cf
Add select for all modes (#102) 4 years ago
Rafał Mikrut 3e61544ec4
Add support for multithreading to zeroed files (#101) 4 years ago
Rafał Mikrut f359905ebc
Add support for multithreading in duplicate finder (#100) 4 years ago
Rafał Mikrut 31e35576ec
Add support for multithreading to finding same music (#99) 4 years ago
Rafał Mikrut 2f72dd9d19
Add multithread support to similar image finder (#98) 4 years ago
Rafał Mikrut 110d6015bc
Similar images improvements: (#97)
Headers without data
By default only checking for High Similarity(faster search)
4 years ago
Rafał Mikrut 5d4f4db8c1
Simplify some GUI code (#96) 4 years ago
Rafał Mikrut 1fb66b32f0 Release version 1.3.0 4 years ago
Rafał Mikrut ecebb3a1af
Implement finding duplicated music by tags/artist/year etc. (#95) 4 years ago
Rafał Mikrut 8ba780ded6
Add missing options in some modes (#90) 4 years ago
Rafał Mikrut 777ac50f07
Add support for checking for zeroed files (#88) 4 years ago
Rafał Mikrut 7112ff6b92
Add support for checking same file names (#84) 4 years ago
Rafał Mikrut d996c3c46b
Add pre hash check (#83) 4 years ago
Rafał Mikrut 4d90e3170e
Remove warnings about non existent directories in Windows (#79) 4 years ago
Rafał Mikrut 2326072222 Release version 1.2.1 4 years ago
Rafał Mikrut beb14f9f1d
Improve similar images GUI a little and add sorting to Similarity Enum (#73) 4 years ago
Syfaro a55fe3de9a
Make image similarity search significantly faster. (#72) 4 years ago
Rafał Mikrut d2c7398bdd Release version 1.2.0 4 years ago
Rafał Mikrut 1178e145ae
Add similar images support for GUI (#69) 4 years ago
Rafał Mikrut 3dd203f246
Add support for finding similar images to CLI (#66) 4 years ago
Dariusz Niedoba acfecd7ca3
Replace String with PathBuf for paths (#59) 4 years ago
Rafał Mikrut 67a775beff Release version 1.1 4 years ago
Rafał Mikrut d015b305f2
Add Windows support (#58) 4 years ago
Rafał Mikrut 8bbb12c7d4
Add ability to stop task from GUI (#55) 4 years ago
Caduser2020 085da0369e
Improve code quality. (#52)
* Remove verbose constructs in core.

* Use self and const fn where appropriate.

* Remove needless borrows.

* Fix name in function arguments.

* Merge 'master' into quality

* Decrease function complexity.

* Run fmt.

* Fix clippy.

* Fix duplicate extension files.

* Fix excluded items.

* Fix allowed extensions (Part 2).

* Fix temporary files.
4 years ago
Rafał Mikrut be30afdac6
Add support for searching in other thread (#51) 4 years ago
Rafał Mikrut 1a87a69116 Fixes some typos 4 years ago
Rafał Mikrut 71353823e7 Update version to 1.0.1 4 years ago
Rafał Mikrut 3b63798751 Don't crash when found file name which is not valid Unicode 4 years ago
Rafał Mikrut 8d263fdff2 Minimal file size in duplicate finder should be always greater than 0 4 years ago
Rafał Mikrut a0c99ab14b Don't crash when modified time of file is before unix epoch 4 years ago
Stefan Seering 1829d19b28 Switch to automatic updates for the program version. 4 years ago
Rafał Mikrut 8d824036b2 Release 1.0.0 version 4 years ago
Rafał Mikrut d3652c1e86 Updated README.md 4 years ago
Rafał Mikrut d7529cb64b Added support for Big, Temporary and empty file finder in GUI 4 years ago
Rafał Mikrut 7a1a9ea9f6 Change SystemTime to u64 4 years ago