C4/External/BakerTaylor.pm - Back end for B&T content.
authorJoe Atzberger <joe.atzberger@liblime.com>
Mon, 21 Apr 2008 21:22:31 +0000 (16:22 -0500)
committerJoshua Ferraro <jmf@liblime.com>
Tue, 22 Apr 2008 23:02:33 +0000 (18:02 -0500)
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
C4/External/BakerTaylor.pm

index ce77e6f..e992df5 100644 (file)
@@ -19,7 +19,7 @@ package C4::External::BakerTaylor;
 
 use XML::Simple;
 use LWP::Simple;
-use LWP::UserAgent;
+use LWP::UserAgent;
 use HTTP::Request::Common;
 use C4::Context;
 use C4::Debug;
@@ -51,19 +51,30 @@ sub initialize {
                        #"Mozilla/4.76 [en] (Win98; U)",        #  if for some reason you want to go stealth, you might prefer this
 }
 
-sub image_url ($) {
+sub image_url (;$) {
        ($user and $pass) or return undef;
-       return $image_url . (@_ ? shift : '');
+       my $isbn = (@_ ? shift : '');
+       $isbn =~ s/(p|-)//g;    # sanitize
+       return $image_url . $isbn;
 }
-sub link_url ($) {
+sub link_url (;$) {
+       my $isbn = (@_ ? shift : '');
+       $isbn =~ s/(p|-)//g;    # sanitize
        $link_url or return undef;
-       return $link_url  . (@_ ? shift : '');
+       return $link_url . $isbn;
+}
+sub content_cafe_url ($) {
+       ($user and $pass) or return undef;
+       my $isbn = (@_ ? shift : '');
+       $isbn =~ s/(p|-)//g;    # sanitize
+       return "http://contentcafe2.btol.com/ContentCafeClient/ContentCafe.aspx?UserID=$user&Password=$pass&Options=Y&ItemKey=$isbn";
 }
 sub http_jacket_link ($) {
        my $isbn = shift or return undef;
+       $isbn =~ s/(p|-)//g;    # sanitize
        my $image = availability($isbn);
        my $alt = "Buy this book";
-       $image and $image = qq(<img class="btjacket" alt="Buy this book" src="$image" />);
+       $image and $image = qq(<img class="btjacket" alt="$alt" src="$image" />);
        my $link = &link_url($isbn);
        unless ($link) {return $image || '';}
        return sprintf qq(<a class="btlink" href="%s">%s</a>),$link,($image||$alt);
@@ -87,28 +98,6 @@ sub availability ($) {
        return ($avail and $avail !~ /^false$/i) ? &image_url($isbn) : 0;
 }
 
-sub content_cafe ($) {
-       my $isbn = shift or return undef;
-       my $ua = LWP::UserAgent->new(
-               agent => $agent,
-               keep_alive => 1,
-               env_proxy  => 1,
-       );
-       my $available = 1;
-       my $uri = "http://contentcafe2.btol.com/ContentCafe/InventoryAvailability.asmx/CheckInventory?UserID=$user&Password=$pass&Value=$isbn";
-       my $req = HTTP::Request->new(GET => $uri);
-       $req->header (
-               'Accept' => 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*',
-               'Accept-Charset' => 'iso-8859-1,*,utf-8',
-               'Accept-Language' => 'en-US' );
-       my $res = $ua->request($req);
-       my $content = $res->content();
-       if ($content =~ /This book is temporarily unavailable/) {
-               return undef;
-       }
-       return $available;
-}
-
 1;
 
 __END__