1 package OpenILS::WWW::AddedContent::Amazon;
2 use strict; use warnings;
3 use OpenSRF::Utils::Logger qw/$logger/;
4 use OpenSRF::Utils::SettingsParser;
5 use OpenILS::WWW::AddedContent;
6 use OpenSRF::Utils::JSON;
7 use OpenSRF::EX qw/:try/;
11 my $AC = 'OpenILS::WWW::AddedContent';
14 my( $class, $args ) = @_;
15 $class = ref $class || $class;
16 return bless($args, $class);
21 return $self->{base_url};
26 return $self->{userid};
30 # --------------------------------------------------------------------------
32 my( $self, $key ) = @_;
33 return $self->send_img(
34 $self->fetch_response('_SCMZZZZZZZ_.jpg', $key));
38 my( $self, $key ) = @_;
39 return $self->send_img(
40 $self->fetch_response('_SCMZZZZZZZ_.jpg', $key));
44 my( $self, $key ) = @_;
45 return $self->send_img(
46 $self->fetch_response('_SCZZZZZZZ_.jpg', $key));
49 # --------------------------------------------------------------------------
52 my($self, $response) = @_;
54 content_type => $response->header('Content-type'),
55 content => $response->content,
60 # returns the raw content returned from the URL fetch
62 my( $self, $page, $key ) = @_;
63 return $self->fetch_response($page, $key)->content;
66 # returns the HTTP response object from the URL fetch
68 my( $self, $page, $key ) = @_;
69 my $uname = $self->userid;
71 # Some sites have entered Amazon IDs in 020 $a, thus we cannot
72 # simply pass all incoming keys to Business::ISBN for normalization
73 if (length($key) > 10) {
74 # Use Business::ISBN to normalize the incoming ISBN
75 my $isbn = Business::ISBN->new( $key );
77 $logger->warning("'$key' is not a valid ISBN");
81 # Amazon prefers ISBN10
82 $isbn = $isbn->as_isbn10 if $isbn->type eq 'ISBN13';
83 $key = $isbn->as_string([]);
86 my $url = $self->base_url . "$key.01.$page";
87 return $AC->get_url($url);