diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/AniDB/Hashing.pm | 17 | ||||
-rw-r--r-- | lib/AniDB/Manager.pm | 2 |
2 files changed, 18 insertions, 1 deletions
diff --git a/lib/AniDB/Hashing.pm b/lib/AniDB/Hashing.pm new file mode 100644 index 0000000..6527756 --- /dev/null +++ b/lib/AniDB/Hashing.pm @@ -0,0 +1,17 @@ +package AniDB::Hashing; +use 5.024; +use strict; +use warnings; +use experimental 'signatures'; +use Digest::ED2K; +use namespace::clean; + +sub hash_fh($fh) { + my $digest = Digest::ED2K->new; + while (my $bytes_read = $fh->sysread($buffer,1024*1024)) { + $digest->add($buffer); + } + return $digest->hexdigest; +} + +1; diff --git a/lib/AniDB/Manager.pm b/lib/AniDB/Manager.pm index ee9d48e..a5c9686 100644 --- a/lib/AniDB/Manager.pm +++ b/lib/AniDB/Manager.pm @@ -50,7 +50,7 @@ has hash_function => ( sub _build_hash_function { require AniDB::Hashing; - return \&AniDB::Hashing::hash_fd; + return \&AniDB::Hashing::hash_fh; } sub new_name_for($self,$path) { |