Permalink
Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign up
translators/Library Catalog (TLCYouSeeMore).js
Find file
Copy path
Fetching contributors…
Cannot retrieve contributors at this time
{ | |
"translatorID": "0f9fc2fc-306e-5204-1117-25bca009dffc", | |
"label": "Library Catalog (TLC/YouSeeMore)", | |
"creator": "Simon Kornblith", | |
"target": "TLCScripts/interpac\\.dll\\?(.*LabelDisplay.*RecordNumber=[0-9]|Search|ItemTitles)", | |
"minVersion": "1.0.0b3.r1", | |
"maxVersion": "", | |
"priority": 260, | |
"inRepository": true, | |
"translatorType": 4, | |
"browserSupport": "gcsibv", | |
"lastUpdated": "2014-08-26 04:11:42" | |
} | |
/* other example here: http://ocl.tlcdelivers.com/TLCScripts/interpac.dll?LabelDisplay&LastResult=Search%26Config=ysm%26FormId=6588839%26Branch=,0,%26LimitsId=0%26StartIndex=0%26SearchField=7%26SearchType=1%26SearchData=food%26NotAddToHistory=1%26ItemsPerPage=30%26SortField=0%26PeriodLimit=-1%26SearchAvailableOnly=0&DataNumber=52182&RecordNumber=52182&SearchAvailableOnly=0&FormId=6588839&ItemField=1&Config=ysm&Branch=,0, | |
but test won't work on that page */ | |
function detectWeb(doc, url) { | |
var detailRe = new RegExp("TLCScripts/interpac\.dll\?.*LabelDisplay.*RecordNumber=[0-9]"); | |
if (detailRe.test(doc.location.href)) { | |
return "book"; | |
} else { | |
return "multiple"; | |
} | |
} | |
function doWeb(doc, url) { | |
var detailRe = new RegExp("TLCScripts/interpac\.dll\?.*LabelDisplay.*RecordNumber=[0-9]"); | |
var uri = doc.location.href; | |
var newUris = new Array(); | |
if (detailRe.test(uri)) { | |
newUris.push(uri.replace("LabelDisplay", "MARCDisplay")); | |
} else { | |
var items = Zotero.Utilities.getItemArray(doc, doc, 'TLCScripts/interpac\.dll\?.*LabelDisplay.*RecordNumber=[0-9]'); | |
items = Zotero.selectItems(items); | |
if (!items) { | |
return true; | |
} | |
for (var i in items) { | |
newUris.push(i.replace("LabelDisplay", "MARCDisplay")); | |
} | |
} | |
var translator = Zotero.loadTranslator("import"); | |
translator.setTranslator("a6ee60df-1ddc-4aae-bb25-45e0537be973"); | |
translator.getTranslatorObject(function(marc) { | |
Zotero.Utilities.processDocuments(newUris, function (newDoc) { | |
var uri = newDoc.location.href; | |
var record = new marc.record(); | |
var elmts = newDoc.evaluate('/html/body/table/tbody/tr[td[4]]', newDoc, null, XPathResult.ANY_TYPE, null); | |
var tag, ind, content, elmt; | |
while (elmt = elmts.iterateNext()) { | |
tag = newDoc.evaluate('./td[2]', elmt, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; | |
var inds = newDoc.evaluate('./td[3]', elmt, null, XPathResult.ANY_TYPE, null).iterateNext().textContent; | |
tag = tag.replace(/[\r\n]/g, ""); | |
inds = inds.replace(/[\r\n\xA0]/g, ""); | |
var children = newDoc.evaluate('./td[4]//text()', elmt, null, XPathResult.ANY_TYPE, null); | |
var subfield = children.iterateNext(); | |
var fieldContent = children.iterateNext(); | |
if (tag == "LDR") { | |
record.leader = "00000" + subfield.nodeValue; | |
} else { | |
content = ""; | |
if (!fieldContent) { | |
content = subfield.nodeValue; | |
} else { | |
while (subfield && fieldContent) { | |
content += marc.subfieldDelimiter + subfield.nodeValue.substr(1, 1) + fieldContent.nodeValue; | |
var subfield = children.iterateNext(); | |
var fieldContent = children.iterateNext(); | |
} | |
} | |
record.addField(tag, inds, content); | |
} | |
} | |
var newItem = new Zotero.Item(); | |
record.translate(newItem); | |
var domain = url.match(/https?:\/\/([^/]+)/); | |
newItem.repository = domain[1] + " Library Catalog"; | |
newItem.complete(); | |
}); | |
}); | |
} | |
/** BEGIN TEST CASES **/ | |
var testCases = [ | |
{ | |
"type": "web", | |
"url": "http://martinsburg.lib.wv.us/TLCScripts/interpac.dll?LabelDisplay&LastResult=Search%26Config=1ysm%26FormId=167489996%26Branch=,1,104,102,103,105,%26LimitsId=167358921%26StartIndex=0%26SearchField=16777216%26SearchType=1%26SearchData=argentina%26NotAddToHistory=1%26ItemsPerPage=20%26SortField=0%26PeriodLimit=-1%26SearchAvailableOnly=0&DataNumber=468041&RecordNumber=468041&SearchAvailableOnly=0&FormId=167489996&ItemField=1&Config=1ysm&Branch=,1,104,102,103,105,", | |
"items": [ | |
{ | |
"itemType": "book", | |
"creators": [ | |
{ | |
"firstName": "Jean F.", | |
"lastName": "Blashfield", | |
"creatorType": "author" | |
} | |
], | |
"notes": [], | |
"tags": [ | |
"Argentina" | |
], | |
"seeAlso": [], | |
"attachments": [], | |
"ISBN": "0516248723", | |
"title": "Argentina", | |
"place": "New York", | |
"publisher": "Children's Press", | |
"date": "2007", | |
"numPages": "144", | |
"series": "Cornerstones of freedom", | |
"callNumber": "F2808.2 .B56 2007", | |
"libraryCatalog": "martinsburg.lib.wv.us Library Catalog" | |
} | |
] | |
} | |
] | |
/** END TEST CASES **/ |