[open-ils-commits] [GIT] Evergreen ILS branch rel_2_1 updated. 91441797b5f91816270730d1f604d6b23a7ef768

Evergreen Git git at git.evergreen-ils.org
Tue Nov 1 13:58:09 EDT 2011


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".

The branch, rel_2_1 has been updated
       via  91441797b5f91816270730d1f604d6b23a7ef768 (commit)
      from  3eabec82e376dab913991c421988543bf97dc5be (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 91441797b5f91816270730d1f604d6b23a7ef768
Author: Dan Scott <dscott at laurentian.ca>
Date:   Tue Nov 1 13:29:25 2011 -0400

    Force Amazon AC requests to use 10-digit ISBNs
    
    Inspired by a patch submitted by Ian Bays <ian.bays at ptfs-europe.com>
    via https://bugs.launchpad.net/evergreen/+bug/870171, this patch takes
    the incoming key and, if it is longer than 10 characters (a 10-digit
    ISBN or Amazon ID), attempts to normalize it and return a 10-digit ISBN.
    
    We don't normalize all incoming keys because some sites are horribly
    abusing the 020 MARC field to include an Amazon ID instead of an ISBN -
    but that works in practice and we'd rather not break working
    installations if we can avoid it.
    
    Signed-off-by: Dan Scott <dscott at laurentian.ca>

diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/Amazon.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/Amazon.pm
index 77c6bef..9e2c13c 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/Amazon.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/Amazon.pm
@@ -6,6 +6,7 @@ use OpenILS::WWW::AddedContent;
 use OpenSRF::Utils::JSON;
 use OpenSRF::EX qw/:try/;
 use XML::LibXML;
+use Business::ISBN;
 
 my $AC = 'OpenILS::WWW::AddedContent';
 
@@ -66,6 +67,22 @@ sub fetch_content {
 sub fetch_response {
     my( $self, $page, $key ) = @_;
     my $uname = $self->userid;
+
+    # Some sites have entered Amazon IDs in 020 $a, thus we cannot
+    # simply pass all incoming keys to Business::ISBN for normalization
+    if (length($key) > 10) {
+        # Use Business::ISBN to normalize the incoming ISBN
+        my $isbn = Business::ISBN->new( $key );
+        if (!defined $isbn) {
+            $logger->warning("'$key' is not a valid ISBN");
+            return 0;
+        }
+
+        # Amazon prefers ISBN10
+        $isbn = $isbn->as_isbn10 if $isbn->type eq 'ISBN13';
+        $key = $isbn->as_string([]);
+    }
+
     my $url = $self->base_url . "$key.01.$page";
     return $AC->get_url($url);
 }

-----------------------------------------------------------------------

Summary of changes:
 .../lib/OpenILS/WWW/AddedContent/Amazon.pm         |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)


hooks/post-receive
-- 
Evergreen ILS


More information about the open-ils-commits mailing list