zotero/translators/Library Catalog (Voyager 7).js

199 lines
5.8 KiB
JavaScript
Raw Normal View History

2024-08-27 21:48:20 -05:00
{
"translatorID": "a81243b5-a9fd-4921-8441-3142a518fdb7",
"label": "Library Catalog (Voyager 7)",
"creator": "Sean Takats",
"target": "/vwebv/(holdingsInfo|search)",
"minVersion": "1.0",
"maxVersion": "",
"priority": 250,
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
"lastUpdated": "2014-08-26 04:12:22"
}
function detectWeb(doc, url) {
var bibIdRe = new RegExp("bibId=[0-9]+");
if (bibIdRe.test(url)) {
return "book";
}
//for single search results such as
//http://catalog.loc.gov/vwebv/search?searchArg=bynum+holy+feast+holy+fast&searchCode=GKEY^*&searchType=0&recCount=100&sk=en_US
else if (ZU.xpathText(doc, '//div[@class="bibliographicData"]')) return "book";
var titles = doc.evaluate('//div[@class="resultListTextCell"]//a', doc, null, XPathResult.ANY_TYPE, null);
if (titles.iterateNext()) {
return "multiple";
}
}
function doWeb(doc, url) {
var bibIdRe = new RegExp("bibId=([0-9]+)");
var m = bibIdRe.exec(url);
//for single search results
if (detectWeb(doc, url)== "book" && !m){
var host = url.match("^(https?://[^/]+)/")[0];
//we get the URL from the print view of the item, which looks like it exists for all Voyager 7 catalogs
url = host + "vwebv/" + ZU.xpathText(doc, '//div[@class="actionBox"]//a[contains(@href, "printDialog.do")]/@href')
var m = bibIdRe.exec(url);
}
Z.debug(url)
var hostRegexp = new RegExp("^(https?://[^/]+)/");
var hMatch = hostRegexp.exec(url);
var host = hMatch[1];
var urlPrefix = url.match("https?://[^/]*(/[^/]*/)?/?vwebv/")[1] ? host + url.match("https?://[^/]*(/[^/]*/)?/?vwebv/")[1] + "/vwebv/exportRecord.do?bibId=" : host + "/vwebv/exportRecord.do?bibId=";
var newUris = new Array();
if (m) { //single item
var newURL = urlPrefix + m[1] + "&format=utf-8"
scrape(doc, newURL)
} else { //search results
var items = new Object();
var titles = doc.evaluate('//div[@class="resultListTextCell"]//a', doc, null, XPathResult.ANY_TYPE, null);
var title;
while (title = titles.iterateNext()) {
var bibId = title.href.match(/bibId=([0-9]+)/)[1];
// Chrome ignores the order in which properties are added if they are numbers
// See http://code.google.com/p/v8/issues/detail?id=164
items["_"+bibId] = title.textContent;
}
Zotero.selectItems(items, function (items) {
if (!items) {
return true;
}
for (var i in items) {
newUris.push(urlPrefix + i.substr(1) + "&format=utf-8");
}
Zotero.Utilities.HTTP.doGet(newUris, function (text) {
// load translator for MARC
var marc = Zotero.loadTranslator("import");
marc.setTranslator("a6ee60df-1ddc-4aae-bb25-45e0537be973");
marc.setString(text);
var domain = url.match(/https?:\/\/([^/]+)/);
marc.setHandler("itemDone", function (obj, item) {
item.repository = domain[1] + " Library Catalog";
item.complete();
});
marc.translate();
}, function () {
Zotero.done()
})
Zotero.wait();
});
}
}
function scrape(doc, url) {
Zotero.Utilities.HTTP.doGet(url, function (text) {
// load translator for MARC
var marc = Zotero.loadTranslator("import");
marc.setTranslator("a6ee60df-1ddc-4aae-bb25-45e0537be973");
marc.setString(text);
var domain = url.match(/https?:\/\/([^/]+)/);
marc.setHandler("itemDone", function (obj, item) {
item.repository = domain[1] + " Library Catalog";
item.complete();
});
marc.translate();
}, function () {
Zotero.done()
})
Zotero.wait();
}
/** BEGIN TEST CASES **/
var testCases = [
{
"type": "web",
"url": "http://groucho.lib.rochester.edu/vwebv/search?searchArg=argentina&searchCode=GKEY%5E*&limitTo=none&recCount=50&searchType=1&page.search.search.button=Search",
"items": "multiple"
},
{
"type": "web",
"url": "http://groucho.lib.rochester.edu/vwebv/holdingsInfo?searchId=3544&recCount=50&recPointer=1&bibId=78520",
"items": [
{
"itemType": "book",
"creators": [
{
"firstName": "Mildred Anna",
"lastName": "Phoebus",
"creatorType": "author"
},
{
"lastName": "United States",
"fieldMode": true
}
],
"notes": [
{
"note": "Supplement to Commerce reports. Published by the Bureau of foreign and domestic commerce. October 29, 1923"
}
],
"tags": [
"Argentina",
"Economic conditions"
],
"seeAlso": [],
"attachments": [],
"title": "Economic development in Argentina since 1921",
"place": "Washington",
"publisher": "Govt. print. off",
"date": "1923",
"numPages": "14",
"series": "U. S. Bureau of foreign and domestic commerce (Dept. of commerce) Trade information bulletin",
"seriesNumber": "no. 156",
"callNumber": "HF105 .F71tr no.156",
"libraryCatalog": "groucho.lib.rochester.edu Library Catalog"
}
]
},
{
"type": "web",
"url": "http://groucho.lib.rochester.edu/vwebv/search?searchArg=Economic+development+in+Argentina+since+1921&submit=+&searchCode=TALL&limitTo=none&recCount=50&searchType=1",
"items": [
{
"itemType": "book",
"creators": [
{
"firstName": "Mildred Anna",
"lastName": "Phoebus",
"creatorType": "author"
},
{
"lastName": "United States",
"fieldMode": true
}
],
"notes": [
{
"note": "Supplement to Commerce reports. Published by the Bureau of foreign and domestic commerce. October 29, 1923"
}
],
"tags": [
"Argentina",
"Economic conditions"
],
"seeAlso": [],
"attachments": [],
"title": "Economic development in Argentina since 1921",
"place": "Washington",
"publisher": "Govt. print. off",
"date": "1923",
"numPages": "14",
"series": "U. S. Bureau of foreign and domestic commerce (Dept. of commerce) Trade information bulletin",
"seriesNumber": "no. 156",
"callNumber": "HF105 .F71tr no.156",
"libraryCatalog": "groucho.lib.rochester.edu Library Catalog"
}
]
}
]
/** END TEST CASES **/