root/trunk/plagger/lib/Plagger/Rule/Deduped/DB_File.pm

Revision 926 (checked in by miyagawa, 3 years ago)

first cut of Plagger::Rule::Deduped

Line 
1 package Plagger::Rule::Deduped::DB_File;
2 use strict;
3 use base qw( Plagger::Rule::Deduped::Base );
4
5 use DB_File;
6
7 sub init {
8     my($self, $rule) = @_;
9     $self->{path} = $rule->{path} || Plagger->context->cache->path_to('Deduped.db');
10     $self->{db} = tie my %cache, 'DB_File', $self->{path}, O_RDWR|O_CREAT, 0666, $DB_HASH
11         or Plagger->context->error("Can't open DB_File $self->{path}: $!");
12 }
13
14 sub find_entry {
15     my($self, $url) = @_;
16
17     my $status = $self->{db}->get($url, my $value);
18     return if $status == 1; # not found
19
20     return $value;
21 }
22
23 sub create_entry {
24     my($self, $url, $digest) = @_;
25     $self->{db}->put($url, $digest);
26 }
27
28 1;
Note: See TracBrowser for help on using the browser.