X-Git-Url: http://git.rot13.org/?p=pxelator;a=blobdiff_plain;f=lib%2FPXElator%2Fstore.pm;h=159484ff6c2812e77bc02a9ccc632fd19b327af9;hp=ecc675a8e96a8756ec350db8297b4ce568911adc;hb=ec4a3f84fc62a282412fe10126dc4e3d1e4a1a4c;hpb=f447ac415f4618ae5b954bacbed4c7dd6137bada diff --git a/lib/PXElator/store.pm b/lib/PXElator/store.pm index ecc675a..159484f 100644 --- a/lib/PXElator/store.pm +++ b/lib/PXElator/store.pm @@ -7,13 +7,16 @@ use POSIX; use Time::HiRes qw/time/; use Data::Dump qw(dump); -#use CouchDB; +our $audit; -use MongoDB; - -my $conn = MongoDB::Connection->new; -our $db = $conn->get_database( 'pxelator' ); -our $audit = $db->get_collection( 'audit' ); +#eval { +# require MongoDB; +# +# my $conn = MongoDB::Connection->new; +# my $db = $conn->get_database( 'pxelator' ); +# $audit = $db->get_collection( 'audit' ); +#}; +#warn "ERROR: no store for audit: $@" if $@; sub audit { @@ -57,16 +60,19 @@ sub audit { # CouchDB::_store_audit( "$time.$package.$url" => $data ); # $data->{_id} = "$time.$package.$url"; - $audit->insert( $data ); +# + if ( $audit ) { + $audit->insert( $data ); + } else { + warn "AUDIT ",dump($data); + } } sub query { - my ( $from_t, $callback ) = @_; - my $q; - $q = { 'package.time' => { '$lt' => $from_t * 1 } } if $from_t; + my ( $q, $callback ) = @_; warn "# query ", dump($q); - $audit->ensure_index({ 'package.name' => 1 }); + $audit->ensure_index({ $_ => 1 }) foreach keys %$q; my $cursor = $audit->query($q)->sort({ 'package.time' => -1 })->limit( 100 ); while( my $o = $cursor->next ) { $callback->( $o );