199 lines
5.8 KiB
JavaScript
199 lines
5.8 KiB
JavaScript
|
{
|
||
|
"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 **/
|