1 package OpenILS::WWW::AddedContent::Syndetic;
2 use strict; use warnings;
4 use OpenSRF::Utils::Logger qw/$logger/;
5 use OpenSRF::Utils::SettingsParser;
10 my( $class, $args ) = @_;
11 $class = ref $class || $class;
12 return bless($args, $class);
17 return $self->{base_url};
22 return $self->{userid};
26 # --------------------------------------------------------------------------
29 my( $self, $key ) = @_;
30 return $self->handle_html(
31 $self->fetch_content('toc.html', $key));
35 my( $self, $key ) = @_;
36 return $self->handle_xml(
37 $self->fetch_content('toc.xml', $key));
41 my( $self, $key ) = @_;
42 return $self->handle_json(
43 $self->fetch_content('toc.xml', $key));
47 # --------------------------------------------------------------------------
50 my( $self, $key ) = @_;
51 return $self->handle_html(
52 $self->fetch_content('dbchapter.html', $key));
56 my( $self, $key ) = @_;
57 return $self->handle_xml(
58 $self->fetch_content('dbchapter.xml', $key));
62 my( $self, $key ) = @_;
63 return $self->handle_json(
64 $self->fetch_content('dbchapter.xml', $key));
68 # --------------------------------------------------------------------------
71 my( $self, $xml ) = @_;
72 return 0 if $xml =~ m/<title>error<\/title>/og;
73 my $doc = XML::LibXML->new->parse_string($xml);
75 my $perl = OpenSRF::Utils::SettingsParser::XML2perl($doc->documentElement);
76 my $json = JSON->perl2JSON($perl);
77 print "Content-type: text/plain\n\n";
83 my( $self, $xml ) = @_;
84 return 0 if $xml =~ m/<title>error<\/title>/og;
85 print "Content-Type: application/xml\n\n";
92 my( $self, $content ) = @_;
93 return 0 if $content =~ m/<title>error<\/title>/og;
95 # Strip images because they lead to broken links
96 $content =~ s#<img.*?>.*?</img>##iog;
97 $content =~ s#<img.*?/>##iog;
98 $content =~ s#<img.*?>##iog; # - it may not be valid xml
100 print "Content-type: text/html\n\n";
107 my( $self, $page, $key ) = @_;
108 my $uname = $self->userid;
109 my $url = $self->base_url . "?isbn=$key/$page&client=$uname&type=rw12";
110 $logger->info("added content URL = $url");
111 my $agent = LWP::UserAgent->new;
112 my $res = $agent->get($url);
113 die "added content request failed: $res->status_line\n" unless $res->is_success;
114 return $res->content;