Initial Commit
This commit is contained in:
199
translators/Library Catalog (Voyager 7).js
Normal file
199
translators/Library Catalog (Voyager 7).js
Normal file
@@ -0,0 +1,199 @@
|
||||
{
|
||||
"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 **/
|
||||
Reference in New Issue
Block a user