Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
143 lines (138 sloc) 5.35 KB
{
"translatorID": "b86bb082-6310-4772-a93c-913eaa3dfa1b",
"label": "Early English Books Online",
"creator": "Michael Berkowitz",
"target": "^https?://[^/]*eebo\\.chadwyck\\.com[^/]*(/works)?/search",
"minVersion": "2.1",
"maxVersion": "",
"priority": 100,
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsb",
"lastUpdated": "2014-04-03 16:50:31"
}
function detectWeb(doc, url) {
if (doc.title == "Search Results - EEBO" || doc.title=="Author's Works - EEBO") {
return "multiple";
} else if (doc.title != "Basic Search - EEBO") {
return "book";
}
}
function doWeb(doc, url) {
var eeboIDs = new Array();
var hostRegexp = new RegExp("^(https?://[^/]+)/");
var hMatch = hostRegexp.exec(url);
var host = hMatch[1];
var IDRegex = /&ID=([^&]+)/
if (detectWeb(doc, url)=="multiple") {
var items = new Object();
var IDxpath = '//td/input[@name="EeboId" or @name="ADDALL"]/@value';
//Z.debug(ZU.xpathText(doc, IDxpath))
var Titlexpath = '//table[tbody/tr/td/input[@name="EeboId"]]/following-sibling::table[tbody]//i[1]';
if (!ZU.xpathText(doc, Titlexpath)){
//the logic for author lists is different
var Titlexpath = '//table/tbody/tr/td/i'
}
var new_ids = doc.evaluate(IDxpath, doc, null, XPathResult.ANY_TYPE, null);
var new_titles = doc.evaluate(Titlexpath, doc, null, XPathResult.ANY_TYPE, null);
var next_id = new_ids.iterateNext();
var next_title = new_titles.iterateNext();
while (next_id) {
Z.debug(next_id.textContent +": " + next_title.textContent)
//the EEBOIDs from author lists have a suffix that we don't want
items[next_id.textContent.replace(/\+.+/, "").trim()] = next_title.textContent.trim();
next_id = new_ids.iterateNext();
next_title = new_titles.iterateNext();
}
Zotero.selectItems(items, function (items) {
if (!items) {
return true;
}
for (var i in items) {
eeboIDs.push(i);
}
scrape(eeboIDs, host);
});
} else {
var eeboid = url.match(IDRegex)[1];
if (eeboid[0] == "D") {
eeboid = eeboid.slice(7, 14);
}
eeboIDs.push(eeboid);
scrape(eeboIDs, host)
}
}
function scrape(eeboIDs, host){
Zotero.debug(eeboIDs);
for (var i = 0 ; i < eeboIDs.length ; i++) {
var postString = 'cit_format=RIS&Print=Print&cit_eeboid=' + eeboIDs[i] + '&EeboId=' + eeboIDs[i];
var new_eeboid = eeboIDs[i]
Zotero.Utilities.HTTP.doPost(host+'/search/print', postString, function(text) {
//Z.debug(text)
// load translator for RIS
var translator = Zotero.loadTranslator("import");
translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7");
translator.setString(text.substring(17));
translator.setHandler("itemDone", function(obj, item) {
//remove date for authors
for (var i in item.creators){
if (item.creators[i].firstName) item.creators[i].firstName = item.creators[i].firstName.replace(/[,\-\d\.\s]+$/g, "")
}
item.attachments.push(
{url : host+'/search/full_rec?SOURCE=pgimages.cfg&ACTION=ByID&ID=' + new_eeboid + '&FILE=../session/1190302085_15129&SEARCHSCREEN=CITATIONS&SEARCHCONFIG=config.cfg&DISPLAY=ALPHA',
title : "EEBO Record",
snapshot : false });
item.complete();
});
translator.translate();
});
}
}
/** BEGIN TEST CASES **/
var testCases = [
{
"type": "web",
"url": "http://eebo.chadwyck.com/works/search?SEARCH=submit+search&ACTION=SearchOrBrowse&AUTHOR=EXACT+%22Manley%2C%20Thomas%2C%201628-1690.%22&FTONLY=&ECCO=N&INITIAL=M&PAGENO=3&TITLE=Manley%2C%20Thomas%2C%201628-1690.&RETRIEVETYPE=subset&HISTLOGGING=N",
"items": "multiple"
},
{
"type": "web",
"url": "http://eebo.chadwyck.com/search/full_rec?SOURCE=config.cfg&ACTION=ByID&ID=13111309&ECCO=undefined&SUBSET=undefined&ENTRIES=undefined",
"items": [
{
"itemType": "book",
"creators": [
{
"lastName": "Manley",
"firstName": "Thomas",
"creatorType": "author"
}
],
"notes": [
{
"note": "<p>\"The table\" [i.e. index]: p. [1]-[14] at end.; Reproduction of original in Huntington Library.</p>"
}
],
"tags": [
"Law -- England.",
"Law -- Interpretation and construction.",
"Law clerks -- England."
],
"seeAlso": [],
"attachments": [
{
"title": "EEBO Record",
"snapshot": false
}
],
"title": "The clerks guide leading into three parts, viz. I. Of indentures, leases, &c., II. Letters of attorney, warrants of attorney, mortgages, licences, charter-parties, &c., III. Bills, answers, replications, rejoynders in chancery, &c., under which are comprehended the most unusual forms of clerkship : to which is added, a fourth part of fines, recoveries, statutes, recognisances, judgements, &c. distresses and replevins : illustrated with cases, and the statutes relating to the same / by Tho. Manley of the Middle Temple, London, Esq.",
"publisher": "London : Printed by John Streater, Henry Twyford, and E. Flesher, assigns of Richard Atkins and Edward Atkins, Esquires, 1672.",
"date": "1672",
"series": "Early English Books, 1641-1700 / 744:51",
"libraryCatalog": "Early English Books Online",
"shortTitle": "The clerks guide leading into three parts, viz. I. Of indentures, leases, &c., II. Letters of attorney, warrants of attorney, mortgages, licences, charter-parties, &c., III. Bills, answers, replications, rejoynders in chancery, &c., under which are comprehended the most unusual forms of clerkship"
}
]
}
]
/** END TEST CASES **/
You can’t perform that action at this time.