Added Content module for pointing to another Evergreen instance
authorjason <jason@esilibrary.com>
Mon, 27 Feb 2012 22:41:16 +0000 (17:41 -0500)
committerjason <jason@esilibrary.com>
Mon, 27 Feb 2012 22:41:16 +0000 (17:41 -0500)
Needs tweaks to opensrf.xml, for example:

        <added_content>
            <!-- load the OpenLibrary added content module -->
            <module>OpenILS::WWW::AddedContent::Evergreen</module>
            <base_url>http://grpl.michiganevergreen.org/opac/extras/ac</base_url>

Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/Evergreen.pm [new file with mode: 0644]

diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/Evergreen.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/Evergreen.pm
new file mode 100644 (file)
index 0000000..29083bb
--- /dev/null
@@ -0,0 +1,72 @@
+package OpenILS::WWW::AddedContent::Evergreen;
+use strict; use warnings;
+use OpenSRF::Utils::Logger qw/$logger/;
+use OpenSRF::Utils::SettingsParser;
+use OpenSRF::Utils::JSON;
+use OpenSRF::EX qw/:try/;
+use OpenILS::WWW::AddedContent;
+use XML::LibXML;
+use MIME::Base64;
+
+my $AC = 'OpenILS::WWW::AddedContent';
+
+
+sub new {
+    my( $class, $args ) = @_;
+    $class = ref $class || $class;
+    return bless($args, $class);
+}
+
+sub base_url {
+    my $self = shift;
+    return $self->{base_url};
+}
+
+
+# --------------------------------------------------------------------------
+sub jacket_small {
+    my( $self, $key ) = @_;
+    return $self->send_img(
+        $self->fetch_response('jacket/small', $key, 1));
+}
+
+sub jacket_medium {
+    my( $self, $key ) = @_;
+    return $self->send_img(
+        $self->fetch_response('jacket/medium', $key, 1));
+
+}
+sub jacket_large {
+    my( $self, $key ) = @_;
+    return $self->send_img(
+        $self->fetch_response('jacket/large', $key, 1));
+}
+
+
+# --------------------------------------------------------------------------
+
+sub send_img {
+    my($self, $response) = @_;
+    return { 
+        content_type => $response->header('Content-type'),
+        content => $response->content, 
+        binary => 1 
+    };
+}
+
+# returns the raw content returned from the URL fetch
+sub fetch_content {
+    my( $self, $page, $key ) = @_;
+    return $self->fetch_response($page, $key)->content;
+}
+
+# returns the HTTP response object from the URL fetch
+sub fetch_response {
+    my( $self, $page, $key, $notype ) = @_;
+    my $url = $self->base_url . "/$page/$key";
+    return $AC->get_url($url);
+}
+
+
+
+1;