use XML::Simple;
#use LWP::Simple;
use C4::Biblio;
+use C4::Items;
use LWP::UserAgent;
use HTTP::Request::Common;
use strict;
-require Exporter;
-
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
-$VERSION = 3.0;
+BEGIN {
+ require Exporter;
+ $VERSION = 3.01;
+ @ISA = qw(Exporter);
+ @EXPORT_OK = qw(
+ &get_xisbns
+ &get_biblio_from_xisbn
+ &get_biblionumber_from_isbn
+ );
+}
+
+sub get_biblionumber_from_isbn {
+ my $isbn = shift;
+ if ($isbn =~ /(\d{9,}[X]*)/) {
+ $isbn = $1.'%';
+ }
+ my @biblionumbers;
+ my $dbh=C4::Context->dbh;
+ my $query = "SELECT biblionumber FROM biblioitems WHERE isbn LIKE ? LIMIT 10";
+ my $sth = $dbh->prepare($query);
+ $sth->execute($isbn);
+ return $sth->fetchall_arrayref({});
+}
=head1 NAME
C4::XISBN - Functions for retrieving XISBN content in Koha
=head1 FUNCTIONS
-This module provides facilities for retrieving XISBN, ThingISBN and XISBN content in Koha
+This module provides facilities for retrieving ThingISBN and XISBN content in Koha
=cut
-@ISA = qw(Exporter);
-@EXPORT_OK = qw(
- &get_xisbns
- &get_biblio_from_xisbn
-);
-
sub get_biblio_from_xisbn {
my $xisbn = shift;
+ $xisbn .='%' if ($xisbn =~ /(\d{9,}[X]*)/);
my $dbh = C4::Context->dbh;
- my $query = "SELECT biblionumber FROM biblioitems WHERE isbn=?";
+ my $query = "SELECT biblionumber FROM biblioitems WHERE isbn LIKE ?";
my $sth = $dbh->prepare($query);
$sth->execute($xisbn);
my $xbib_data = $sth->fetchrow_hashref();
my $xbiblio;
if ($xbib_data->{biblionumber}) {
$xbiblio = GetBiblioData($xbib_data->{biblionumber});
+ $xbiblio->{isbn} =~ /(\d{9,}[X]*)/;
+ $xbiblio->{amazonisbn} = $1;
$xbiblio->{items} = GetItemsByBiblioitemnumber($xbib_data->{biblionumber});
}
return ($xbiblio);
-
}
+
=head1 get_xisbns($isbn);
=head2 $isbn is an ISBN string
sub get_xisbns {
my ( $isbn ) = @_;
my ($response,$thing_response,$xisbn_response,$gapines_response);
-
+ $isbn =~ /(\d{9,}[X]*)/;
+ $isbn = $1;
# THINGISBN
if ( C4::Context->preference('ThingISBN') ) {
my $url = "http://www.librarything.com/api/thingISBN/".$isbn;
# loop through each ISBN and scope to the local collection
for my $response_data( @{ $response->{ isbn } } ) {
+ next if $response_data->{'content'} eq $isbn;
+ next if $isbn eq $response_data;
next if $unique_xisbns->{ $response_data->{content} };
$unique_xisbns->{ $response_data->{content} }++;
my $xbiblio= get_biblio_from_xisbn($response_data->{content});
return undef;
}
+1;
+__END__
+
=head1 NOTES
=head1 AUTHOR
Joshua Ferraro <jmf@liblime.com>
+
=cut
+