From b876e8bf27b5dee87a5955580741d6be501eaa90 Mon Sep 17 00:00:00 2001 From: Avram Lyon Date: Sun, 3 Jul 2011 19:35:09 +0000 Subject: [PATCH] Trans: Fix EEBO, closes ticket #1518. --- translators/Early English Books Online.js | 30 ++++++++++++----------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/translators/Early English Books Online.js b/translators/Early English Books Online.js index a3d4043879..c2d5d01f57 100644 --- a/translators/Early English Books Online.js +++ b/translators/Early English Books Online.js @@ -3,12 +3,12 @@ "translatorType":4, "label":"Early English Books Online", "creator":"Michael Berkowitz", - "target":"http://[^/]*eebo.chadwyck.com[^/]*/search", - "minVersion":"1.0.0b4.r5", + "target":"^http://[^/]*eebo.chadwyck.com[^/]*/search", + "minVersion":"2.1", "maxVersion":"", "priority":100, "inRepository":true, - "lastUpdated":"2008-02-11 19:30:00" + "lastUpdated":"2011-06-14 19:30:00" } function detectWeb(doc, url) { @@ -25,28 +25,26 @@ function doWeb(doc, url) { var hostRegexp = new RegExp("^(https?://[^/]+)/"); var hMatch = hostRegexp.exec(url); var host = hMatch[1]; + var IDRegex = /&ID=([^&]+)/ if (doc.title == "Search Results - EEBO") { var items = new Object(); - Zotero.debug("search page"); - var IDxpath = '//td[3]/script'; - var Titlexpath = '//td[3]/i'; + var IDxpath = '//td/input[@name="EeboId"]/@value'; + var Titlexpath = '//table[tbody/tr/td/input[@name="EeboId"]]/following-sibling::table[1]//i[1]'; 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 new_titles = doc.evaluate(Titlexpath, doc, null, XPathResult.ANY_TYPE, null); var next_id = new_ids.iterateNext(); - var next_title = new_titles.iterateNext(); - var IDRegex = /'(\d+)'/; + var next_title = new_titles.iterateNext(); while (next_id) { - items[next_id.textContent.match(IDRegex)[1]] = next_title.textContent; + items[next_id.textContent.trim()] = next_title.textContent.trim(); next_id = new_ids.iterateNext(); next_title = new_titles.iterateNext(); - } + } items = Zotero.selectItems(items); for (var i in items) { eeboIDs.push(i); } } else { - var IDRegex = /&ID=(\w+)&/ var eeboid = url.match(IDRegex)[1]; if (eeboid[0] == "D") { eeboid = eeboid.slice(7, 14); @@ -63,11 +61,15 @@ function doWeb(doc, url) { translator.setTranslator("32d59d2d-b65a-4da4-b0a3-bdd3cfb979e7"); translator.setString(text.substring(17)); translator.setHandler("itemDone", function(obj, item) { - item.url = host+'/search/full_rec?SOURCE=pgimages.cfg&ACTION=ByID&ID=' + new_eeboid + '&FILE=../session/1190302085_15129&SEARCHSCREEN=CITATIONS&SEARCHCONFIG=config.cfg&DISPLAY=ALPHA'; + 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(); Zotero.done(); }); } -} \ No newline at end of file + Zotero.wait(); +}