Catmandu-MediaHaven
view release on metacpan or search on metacpan
my $mh = Catmandu::MediaHaven->new(
url => '...' ,
username => '...' ,
password => '...');
my $result = $mh->search('nature', start => 0 , num => 100);
die "search failed" unless defined($result);
for my $res (@{$result->{mediaDataList}}) {
my $id = $res->{fragmentId};
my $date = $res->{data};
print "$id $date\n";
}
my $record = $mh->record('q2136s817');
my $date = $record->{date};
print "q2136s817 $date\n";
lib/Catmandu/MediaHaven.pm view on Meta::CPAN
my $mh = Catmandu::MediaHaven->new(
url => '...' ,
username => '...' ,
password => '...');
my $result = $mh->search('nature', start => 0 , num => 100);
die "search failed" unless defined($result);
for my $res (@{$result->{mediaDataList}}) {
my $id = $res->{fragmentId};
my $date = $res->{data};
print "$id $date\n";
}
my $record = $mh->record('q2136s817');
my $date = $record->{date};
print "q2136s817 $date\n";
lib/Catmandu/MediaHaven.pm view on Meta::CPAN
$self->log->info("edit record $id");
my $record = $self->record($id);
unless ($record) {
$self->log->error("no such record $id");
return undef;
}
my $fragmentId = $record->{fragmentId};
my @param;
for (@values) {
push @param , 'value' , $_;
}
my $res = $self->_rest_post("$fragmentId/$field", @param);
return $res;
}
=head2 export($id, $callback)
Export the binary content of a record from the MediaHaven server. The callback
will retrieve a stream of data when the download is available,
=cut
lib/Catmandu/MediaHaven.pm view on Meta::CPAN
my ($self,@param) = @_;
my $media_url = $self->_rest_base . '?';
$media_url .= join("&",@param);
$self->_get_json($media_url);
}
sub _rest_post {
my ($self,$fragment,@param) = @_;
my $media_url = $self->_rest_base .
'/' .
$fragment;
$self->_post_json($media_url,\@param);
}
=head1 MODULES
L<Catmandu::Importer::MediaHaven>
L<Catmandu::Store::File::MediaHaven>
lib/Catmandu/Store/File/MediaHaven/Searcher.pm view on Meta::CPAN
};
}
sub hit2rec {
my ($self,$hit) = @_;
if ($self->bag->store->id_fixer) {
return $self->bag->store->id_fixer->fix($hit);
}
else {
my $id = $hit->{fragmentId};
return +{_id => $id};
}
}
sub slice {
my ($self, $start, $total) = @_;
$start //= 0;
$self->new(
bag => $self->bag,
query => $self->query,
t/Catmandu-Exporter-MediaHaven.t view on Meta::CPAN
json_key => 'description');
ok $exporter , 'got an exporter';
ok $exporter->mediahaven , 'got a connection';
my $res = $exporter->mediahaven->search();
ok $res , 'got search result';
my $fragmentId = $res->{mediaDataList}->[1]->{fragmentId};
ok $fragmentId , "got one record $fragmentId";
my $record = { _id => $fragmentId , date => time , test => [qw(1 2 3)]};
ok $exporter->add($record) , "updated record $fragmentId";
ok $exporter->commit , "can do a commit";
sleep(20);
my $record2 = $exporter->mediahaven->record($fragmentId);
ok $record2 , 'got the record back';
my $description = $record2->{description};
ok $description , "got a description: $description";
my $json_rec = decode_json $description;
ok $json_rec , "got json";
t/Catmandu-MediaHaven.t view on Meta::CPAN
ok $res->{totalNrOfResults} >= 0 , 'got more than one answer';
my $num_of_result = $res->{totalNrOfResults};
my $result_list = $res->{mediaDataList};
is int(@$result_list) , $num_of_result , 'got enough results';
if ($num_of_result) {
my $id = $result_list->[0]->{fragmentId};
ok $id , 'got an record identifier';
$res = $mh->record($id);
ok $res , 'got a record result';
is ref($res) , 'HASH' , 'record result is a hash';
is $res->{fragmentId} , $id , 'got the correct record';
}
}
done_testing;
( run in 1.764 second using v1.01-cache-2.11-cpan-364913b4093 )