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:
parent
050f9115de
commit
53ace84401
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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" -->&type=series&num=1&client=<!-- TMPL_VAR NAME="SyndeticsClientCode" --><!-- TMPL_IF NAME="normalized_upc" -->&upc=<!-- TMPL_VAR NAME="normalized_upc" --><!-- /TMPL_IF --><!-- TMPL_IF NAME="normalized_oclc" -->&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&client=<!-- TMPL_VAR NAME="SyndeticsClientCode" --><!-- TMPL_IF NAME="normalized_upc" -->&upc=<!-- TMPL_VAR NAME="normalized_upc" --><!-- /TMPL_IF --><!-- TMPL_IF NAME="normalized_oclc" -->&oclc=<!-- TMPL_VAR NAME="normalized_oclc" --><!-- /TMPL_IF -->&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&client=<!-- TMPL_VAR NAME="SyndeticsClientCode" --><!-- TMPL_IF NAME="normalized_upc" -->&upc=<!-- TMPL_VAR NAME="normalized_upc" --><!-- /TMPL_IF --><!-- TMPL_IF NAME="normalized_oclc" -->&oclc=<!-- TMPL_VAR NAME="normalized_oclc" --><!-- /TMPL_IF -->&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 -->
|
||||
|
||||
|
|
|
|||
|
|
@ -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 $@;
|
||||
|
|
|
|||
Loading…
Reference in New Issue