From 8f9e7bd9092c44a357f11b71396b9ea9a1e78e1c Mon Sep 17 00:00:00 2001 From: miker Date: Wed, 4 Jun 2008 00:53:52 +0000 Subject: [PATCH] mod_rewrite mapping script for openurl->opensearch git-svn-id: svn://svn.open-ils.org/ILS/trunk@9761 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/extras/openurl_map.pl | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 Open-ILS/src/extras/openurl_map.pl diff --git a/Open-ILS/src/extras/openurl_map.pl b/Open-ILS/src/extras/openurl_map.pl new file mode 100755 index 0000000000..a376df7e0e --- /dev/null +++ b/Open-ILS/src/extras/openurl_map.pl @@ -0,0 +1,32 @@ +#!/usr/bin/perl +# + +$|=1; + +while (my $openurl = <>) { + my $opensearch = '/opac/extras/opensearch/1.1/-/marcxml/-/?'; + my @parts = split('&', $openurl); + + my %params = ( + kw => '', + au => '', + ti => '', + ); + + for (@parts) { + if (/^au[^=]+=(.*)$/o) { + $params{au} .= $1 . ' '; + } elsif (/^[sa]?title=(.*)$/o) { + $params{ti} .= $1 . ' '; + } elsif (/^e?is.n=(.*)$/o) { + $params{kw} .= $1 . ' '; + } elsif (/^[^=]+=(.*)$/o) { + $params{kw} .= $1 . ' '; + } + } + + $opensearch .= join('&', map { "$_=$params{$_}" } keys %params ); + + print $opensearch . "\n"; + +}; -- 2.43.2