Syndetics: add support for AVSUMMARY and AVPROFILE

Added support for the Syndetics AV summary and AV profile
data elements.  The AV summary is displayed in the description
tab if present, while the AV profile is displayed as
a link off of the OPAC bib details page.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
This commit is contained in:
Galen Charlton 2009-04-30 15:09:42 -05:00
parent 050f9115de
commit 53ace84401
3 changed files with 23 additions and 18 deletions

View File

@ -90,7 +90,7 @@ sub get_syndetics_index {
) unless !$content;
my $syndetics_elements;
for my $available_type ('SUMMARY','TOC','FICTION','AWARDS1','SERIES1','SPSUMMARY','SPREVIEW','AVSUMMARY','DBCHAPTER','LJREVIEW','PWREVIEW','SLJREVIEW','CHREVIEW','BLREVIEW','HBREVIEW','KIREVIEW','CRITICASREVIEW','ANOTES') {
for my $available_type ('SUMMARY','TOC','FICTION','AWARDS1','SERIES1','SPSUMMARY','SPREVIEW', 'AVPROFILE', 'AVSUMMARY','DBCHAPTER','LJREVIEW','PWREVIEW','SLJREVIEW','CHREVIEW','BLREVIEW','HBREVIEW','KIREVIEW','CRITICASREVIEW','ANOTES') {
if (exists $response->{$available_type} && $response->{$available_type} =~ /$available_type/) {
$syndetics_elements->{$available_type} = $available_type;
#warn "RESPONSE: $available_type : $response->{$available_type}";
@ -100,12 +100,13 @@ sub get_syndetics_index {
}
sub get_syndetics_summary {
my ( $isbn,$upc,$oclc ) = @_;
my ( $isbn, $upc, $oclc, $syndetics_elements ) = @_;
# grab the AWSAccessKeyId: mine is '0V5RRRRJZ3HR2RQFNHR2'
my $syndetics_client_code = C4::Context->preference('SyndeticsClientCode');
my $url = "http://www.syndetics.com/index.aspx?isbn=$isbn/SUMMARY.XML&client=$syndetics_client_code&type=xw10&upc=$upc&oclc=$oclc";
my $summary_type = exists($syndetics_elements->{'AVSUMMARY'}) ? 'AVSUMMARY' : 'SUMMARY';
my $url = "http://www.syndetics.com/index.aspx?isbn=$isbn/$summary_type.XML&client=$syndetics_client_code&type=xw10&upc=$upc&oclc=$oclc";
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
@ -117,14 +118,14 @@ sub get_syndetics_summary {
my $content = $response->content;
warn "could not retrieve $url" unless $content;
my $xmlsimple = XML::Simple->new();
$response = $xmlsimple->XMLin(
$content,
forcearray => [ qw(Fld520) ],
) unless !$content;
# manipulate response USMARC VarFlds VarDFlds Notes Fld520 a
my $summary;
$summary = \@{$response->{VarFlds}->{VarDFlds}->{Notes}->{Fld520}} if $response;
eval {
my $doc = $parser->parse_string($content);
$summary = $doc->findvalue('//Fld520');
};
if ($@) {
warn "Error parsing response from $url";
}
return $summary if $summary;
}

View File

@ -233,6 +233,11 @@
<span class="label">Series Information:</span> <a target="_blank" href="http://www.syndetics.com/ffseries.aspx?isbn=<!-- TMPL_VAR NAME="normalized_isbn" -->&amp;type=series&amp;num=1&amp;client=<!-- TMPL_VAR NAME="SyndeticsClientCode" --><!-- TMPL_IF NAME="normalized_upc" -->&amp;upc=<!-- TMPL_VAR NAME="normalized_upc" --><!-- /TMPL_IF --><!-- TMPL_IF NAME="normalized_oclc" -->&amp;oclc=<!-- TMPL_VAR NAME="normalized_oclc" --><!-- /TMPL_IF -->">Click to open in new window</a>
</span>
<!-- /TMPL_IF --><!-- /TMPL_IF -->
<!-- TMPL_IF NAME="SyndeticsAVPROFILEExists" -->
<span class="results_summary">
<span class="label">Audiovisual Profile:</span> <a target="_blank" href="http://www.syndetics.com/index.aspx?isbn=<!-- TMPL_VAR NAME="normalized_isbn" -->/avprofile.html&amp;client=<!-- TMPL_VAR NAME="SyndeticsClientCode" --><!-- TMPL_IF NAME="normalized_upc" -->&amp;upc=<!-- TMPL_VAR NAME="normalized_upc" --><!-- /TMPL_IF --><!-- TMPL_IF NAME="normalized_oclc" -->&amp;oclc=<!-- TMPL_VAR NAME="normalized_oclc" --><!-- /TMPL_IF -->&amp;type=xw10">Click to open in new window</a>
</span>
<!-- /TMPL_IF -->
<!-- TMPL_IF NAME="SyndeticsFICTIONExists" -->
<span class="results_summary">
<span class="label">Fiction Notes:</span> <a target="_blank" href="http://www.syndetics.com/index.aspx?isbn=<!-- TMPL_VAR NAME="normalized_isbn" -->/fiction.html&amp;client=<!-- TMPL_VAR NAME="SyndeticsClientCode" --><!-- TMPL_IF NAME="normalized_upc" -->&amp;upc=<!-- TMPL_VAR NAME="normalized_upc" --><!-- /TMPL_IF --><!-- TMPL_IF NAME="normalized_oclc" -->&amp;oclc=<!-- TMPL_VAR NAME="normalized_oclc" --><!-- /TMPL_IF -->&amp;type=xw10">Click to open in new window</a>
@ -424,13 +429,11 @@
<!-- /TMPL_IF-->
<!-- /TMPL_IF-->
<!-- TMPL_IF NAME="SyndeticsEnabled" -->
<!-- TMPL_IF NAME="SyndeticsSummary" --><!-- TMPL_IF NAME="SyndeticsSUMMARYExists" -->
<!-- TMPL_LOOP NAME="SYNDETICS_SUMMARY" -->
<!-- TMPL_IF NAME="a" -->
<!-- TMPL_IF NAME="SyndeticsSummary" -->
<!-- TMPL_IF NAME="SYNDETICS_SUMMARY" -->
<h4>Enhanced Descriptions from Syndetics:</h4>
<p><!-- TMPL_VAR NAME="a" --></p>
<!-- /TMPL_IF -->
<!-- /TMPL_LOOP -->
<p><!-- TMPL_VAR NAME="SYNDETICS_SUMMARY" --></p>
<!-- /TMPL_IF -->
<!-- /TMPL_IF --><!-- /TMPL_IF -->
<!-- /TMPL_IF -->

View File

@ -333,9 +333,10 @@ if ( C4::Context->preference("SyndeticsEnabled") ) {
if ( C4::Context->preference("SyndeticsEnabled")
&& C4::Context->preference("SyndeticsSummary")
&& $syndetics_elements->{'SUMMARY'} =~ /SUMMARY/) {
&& ( $syndetics_elements->{'SUMMARY'} =~ /SUMMARY/
|| $syndetics_elements->{'AVSUMMARY'} =~ /AVSUMMARY/ ) ) {
eval {
my $syndetics_summary = &get_syndetics_summary($isbn,$upc,$oclc);
my $syndetics_summary = &get_syndetics_summary($isbn,$upc,$oclc, $syndetics_elements);
$template->param( SYNDETICS_SUMMARY => $syndetics_summary );
};
warn $@ if $@;