X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FExternal%2FBakerTaylor.pm;h=13b2b5302e6b267806c817d7768e9b6334e5ebba;hb=9d6d641d1f8b77271800f43bc027b651f9aea52b;hp=d49aa8dc7ff941d1ea9997636ac9c0e8a7ea4a79;hpb=65be03846d064dd6d9e7159550a269a352054b65;p=srvgit diff --git a/C4/External/BakerTaylor.pm b/C4/External/BakerTaylor.pm index d49aa8dc7f..13b2b5302e 100644 --- a/C4/External/BakerTaylor.pm +++ b/C4/External/BakerTaylor.pm @@ -1,74 +1,78 @@ package C4::External::BakerTaylor; + # Copyright (C) 2008 LibLime # # # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . use XML::Simple; -use LWP::Simple; -# use LWP::UserAgent; -use HTTP::Request::Common; +use LWP::Simple qw( get ); + use C4::Context; -use C4::Debug; -use strict; -use warnings; +use Modern::Perl; -use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); -use vars qw($user $pass $agent $image_url $link_url); +use vars qw(%EXPORT_TAGS $VERSION); +our (@ISA, @EXPORT_OK); BEGIN { - require Exporter; + require Exporter; + @ISA = qw(Exporter); $VERSION = 3.07.00.049; - @ISA = qw(Exporter); - @EXPORT_OK = qw(&availability &content_cafe &image_url &link_url &http_jacket_link); - %EXPORT_TAGS = (all=>\@EXPORT_OK); -} -INIT { - &initialize; + @EXPORT_OK = qw(availability content_cafe_url image_url link_url http_jacket_link); } -sub initialize { +# These variables are plack safe: they are initialized each time +my ( $user, $pass, $agent, $image_url, $link_url ); + +sub _initialize { $user = (@_ ? shift : C4::Context->preference('BakerTaylorUsername') ) || ''; # LL17984 $pass = (@_ ? shift : C4::Context->preference('BakerTaylorPassword') ) || ''; # CC82349 $link_url = (@_ ? shift : C4::Context->preference('BakerTaylorBookstoreURL')); - $image_url = "http://contentcafe2.btol.com/ContentCafe/Jacket.aspx?UserID=$user&Password=$pass&Options=Y&Return=T&Type=S&Value="; + $image_url = "https://contentcafe2.btol.com/ContentCafe/Jacket.aspx?UserID=$user&Password=$pass&Options=Y&Return=T&Type=S&Value="; $agent = "Koha/$VERSION [en] (Linux)"; #"Mozilla/4.76 [en] (Win98; U)", # if for some reason you want to go stealth, you might prefer this } sub image_url { + _initialize(); ($user and $pass) or return; my $isbn = (@_ ? shift : ''); $isbn =~ s/(p|-)//g; # sanitize return $image_url . $isbn; } + sub link_url { + _initialize(); my $isbn = (@_ ? shift : ''); $isbn =~ s/(p|-)//g; # sanitize $link_url or return; return $link_url . $isbn; } + sub content_cafe_url { + _initialize(); ($user and $pass) or return; my $isbn = (@_ ? shift : ''); $isbn =~ s/(p|-)//g; # sanitize - return "http://contentcafe2.btol.com/ContentCafeClient/ContentCafe.aspx?UserID=$user&Password=$pass&Options=Y&ItemKey=$isbn"; + return "https://contentcafe2.btol.com/ContentCafeClient/ContentCafe.aspx?UserID=$user&Password=$pass&Options=Y&ItemKey=$isbn"; } + sub http_jacket_link { + _initialize(); my $isbn = shift or return; $isbn =~ s/(p|-)//g; # sanitize my $image = availability($isbn); @@ -80,13 +84,12 @@ sub http_jacket_link { } sub availability { + _initialize(); my $isbn = shift or return; ($user and $pass) or return; $isbn =~ s/(p|-)//g; # sanitize - my $url = "http://contentcafe2.btol.com/ContentCafe/InventoryAvailability.asmx/CheckInventory?UserID=$user&Password=$pass&Value=$isbn"; - $debug and warn __PACKAGE__ . " request:\n$url\n"; + my $url = "https://contentcafe2.btol.com/ContentCafe/InventoryAvailability.asmx/CheckInventory?UserID=$user&Password=$pass&Value=$isbn"; my $content = get($url); - $debug and print STDERR $content, "\n"; warn "could not retrieve $url" unless $content; my $xmlsimple = XML::Simple->new(); my $result = $xmlsimple->XMLin($content);