Remainder of InnoPAC translator fix. Thanks to noksagt

for pointing out that I had missed part of my patch.
This commit is contained in:
Avram Lyon 2010-09-23 17:01:51 +00:00
parent f3cfcd0b08
commit 80ee78a348

View File

@ -1,14 +1,14 @@
{
"translatorID":"4fd6b89b-2316-2dc4-fd87-61a97dd941e8",
"translatorType":4,
"label":"Library Catalog (InnoPAC)",
"creator":"Simon Kornblith and Michael Berkowitz",
"target":"(search~|\\/search\\?|(a|X|t|Y|w)\\?|\\?(searchtype|searchscope)|frameset&FF|record=b[0-9]+(~S[0-9])?|/search/q\\?)",
"minVersion":"1.0.0b3.r1",
"maxVersion":"",
"priority":200,
"inRepository":true,
"lastUpdated":"2010-09-10 13:40:50"
"translatorID":"4fd6b89b-2316-2dc4-fd87-61a97dd941e8",
"label":"Library Catalog (InnoPAC)",
"creator":"Simon Kornblith and Michael Berkowitz",
"target":"(search~|\\/search\\?|(a|X|t|Y|w)\\?|\\?(searchtype|searchscope)|frameset&FF|record=b[0-9]+(~S[0-9])?|/search/q\\?)",
"minVersion":"1.0.0b3.r1",
"maxVersion":"",
"priority":200,
"inRepository":true,
"translatorType":4,
"lastUpdated":"2010-08-24 23:04:19"
}
function detectWeb(doc, url) {
@ -33,6 +33,8 @@ function detectWeb(doc, url) {
// Persistent URL for item
// http://bearcat.baylor.edu/record=b1540169~S7
// http://innopac.cooley.edu/record=b507916~S0
// Persistent URL for item, without suffix
// http://luna.wellesley.edu/record=b2398784
// Specific search parameters
// http://library.cooley.edu/search/q?author=shakespeare&title=hamlet
//***********
@ -44,8 +46,8 @@ function detectWeb(doc, url) {
return "book";
}
// possibly disastrous edit to regular expression below
if (!url.match(/SEARCH=/) && !url.match(/searchargs?=/) && !url.match(/&FF/) && !url.match(/search~S[0-9]/) && !url.match(/\/search\/q\?/)) return false;
// Regular expression to reduce false positives
if (!url.match(/SEARCH=/) && !url.match(/searchargs?=/) && !url.match(/&FF/) && !url.match(/search~S[0-9]/) && !url.match(/\/search\/q\?/) && !url.match(/record=/)) return false;
// First, check to see if the URL alone reveals InnoPAC, since some sites don't reveal the MARC button
var matchRegexp = new RegExp('^https?://[^/]+/search[^/]*\\??/[^/]+/[^/]+/[^/]+\%2C[^/]+/frameset(.+)$');
if(matchRegexp.test(doc.location.href)) {
@ -54,7 +56,7 @@ function detectWeb(doc, url) {
}
}
// Next, look for the MARC button
xpath = '//a[img[@src="/screens/marcdisp.gif" or starts-with(@alt, "MARC ") or @src="/screens/regdisp.gif" or @alt="REGULAR RECORD DISPLAY"]]';
xpath = '//a[img[@src="/screens/marc_display.gif" or @src="/screens/marcdisp.gif" or starts-with(@alt, "MARC ") or @src="/screens/regdisp.gif" or @alt="REGULAR RECORD DISPLAY"]]';
elmt = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext();
if(elmt) {
return "book";
@ -170,7 +172,8 @@ function doWeb(doc, url) {
if (m) {
newUri = uri.replace(/frameset/, "marc");
} else {
newUri = doc.evaluate('//a[contains(@href, "frameset")]', doc, null, XPathResult.ANY_TYPE, null).iterateNext().href.replace(/frameset/, 'marc');
var xpath = '//a[img[@src="/screens/marc_display.gif" or @src="/screens/marcdisp.gif" or starts-with(@alt, "MARC ") or @src="/screens/regdisp.gif" or @alt="REGULAR RECORD DISPLAY"]]';
newUri = doc.evaluate(xpath, doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href.replace(/frameset/, "marc");;
}
pageByPage(marc, [newUri]);
} else { // Search results page