www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit 9bd8c1b1f794796a7849e0882091097a56210f47
parent bd7ff9c2c653c9d7b22b5add3065c4e4af767abc
Author: Sean Takats <sean@takats.org>
Date:   Thu,  1 Apr 2010 22:04:01 +0000

Adds support for CABI database to ISI Web of Knowledge. Translator now uses retrieveDocument and retrieveSource functions.


Diffstat:
Mtranslators/ISI Web of Knowledge.js | 132++++++++++++++++++++++++++++++++++++++++----------------------------------------
1 file changed, 66 insertions(+), 66 deletions(-)

diff --git a/translators/ISI Web of Knowledge.js b/translators/ISI Web of Knowledge.js @@ -3,16 +3,16 @@ "translatorType":4, "label":"ISI Web of Knowledge", "creator":"Michael Berkowitz", - "target":"(WOS_GeneralSearch|product=WOS)", + "target":"(WOS_GeneralSearch|product=WOS|product=CABI)", "minVersion":"1.0.0b4.r5", "maxVersion":"", "priority":100, "inRepository":true, - "lastUpdated":"2009-02-25 07:10:00" + "lastUpdated":"2010-04-01 22:01:15" } function detectWeb(doc, url) { - if (doc.title.indexOf("Web of Science Results") != -1) { + if ((doc.title.indexOf("Web of Science Results") != -1) | (doc.title.indexOf("CABI Results") != -1)) { return "multiple"; } else if (url.indexOf("full_record.do") != -1) { return "journalArticle"; @@ -42,73 +42,73 @@ function doWeb(doc, url) { for (var i in ids) { ids[i] = host+"/full_record.do?" + ids[i]; } - Zotero.Utilities.processDocuments(ids, function(newDoc) { + var product = url.match("product=([^\&]+)\&")[1]; + for (var i=0 ; i<ids.length; i++) { + newDoc = Zotero.Utilities.retrieveDocument(ids[i]); var url = newDoc.location.href; var sid = newDoc.evaluate('//input[@name="selectedIds"]', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().value; var nid = newDoc.evaluate('//input[@name="SID"]', newDoc, null, XPathResult.ANY_TYPE, null).iterateNext().value; - var post2 = 'product=WOS&product_sid=' + nid + '&plugin=&product_st_thomas=http://esti.isiknowledge.com:8360/esti/xrpc&export_ref.x=0&export_ref.y=0'; - var post = 'action=go&mode=quickOutput&product=WOS&SID=' + nid + '&format=ref&fields=BibAbs&mark_id=WOS&count_new_items_marked=0&selectedIds=' + sid + '&qo_fields=bib&endnote.x=95&endnote.y=12&save_options=default'; - Zotero.Utilities.HTTP.doPost('http://apps.isiknowledge.com/OutboundService.do', post, function() { - Zotero.Utilities.HTTP.doPost('http://pcs.isiknowledge.com/uml/uml_view.cgi', post2, function(text) { - var lines = text.split("\n"); - var field = " "; - var content = " "; - var item = new Zotero.Item("journalArticle"); - item.url = url; - var authors; - var fieldRe = /^[A-Z0-9]{2}(?: |$)/; - - for each(var line in lines) { - if(line.match(fieldRe)) { - field = line.match(fieldRe)[0].substr(0,2); - content = line.substr(3); - if ((field == "AF" || field == "AU")) { - if (!item.creators[0]) { - var author = content.split(","); - item.creators.push({firstName:author[1], lastName:author[0], creatorType:"author"}); - } else { - field = ""; - } - } else if (field == "TI") { - item.title = content; - } else if (field == "SO") { - item.publicationTitle = content; - } else if (field == "SN") { - item.ISSN = content; - } else if (field == "PD" || field == "PY") { - if (item.date) { - item.date += " " + content; - } else { - item.date = content; - } - } else if (field == "VL") { - item.volume = content; - } else if (field == "IS") { - item.issue = content; - } else if (field == "BP") { - item.pages = content; - } else if (field == "EP") { - item.pages += "-" + content; - } else if (field == "AB") { - item.abstractNote = content; - } else if (field == "DI") { - item.DOI = content; - } + var post2 = 'product='+product+'&product_sid=' + nid + '&plugin=&product_st_thomas=http://esti.isiknowledge.com:8360/esti/xrpc&export_ref.x=0&export_ref.y=0'; + var post = 'action=go&mode=quickOutput&product='+product+'&SID=' + nid + '&format=ref&fields=BibAbs&mark_id='+product+'&count_new_items_marked=0&selectedIds=' + sid + '&qo_fields=bib&endnote.x=95&endnote.y=12&save_options=default'; + Zotero.Utilities.HTTP.retrieveSource('http://apps.isiknowledge.com/OutboundService.do', post); + var text = Zotero.Utilities.HTTP.retrieveSource('http://pcs.isiknowledge.com/uml/uml_view.cgi', post2); + var lines = text.split("\n"); + var field = " "; + var content = " "; + var item = new Zotero.Item("journalArticle"); + item.url = url; + var authors; + var fieldRe = /^[A-Z0-9]{2}(?: |$)/; + for each(var line in lines) { + if(line.match(fieldRe)) { + field = line.match(fieldRe)[0].substr(0,2); + content = line.substr(3); + if ((field == "AF" || field == "AU")) { + if (!item.creators[0]) { + var author = content.split(","); + item.creators.push({firstName:author[1], lastName:author[0], creatorType:"author"}); + } else { + field = ""; + } + } else if (field == "TI") { + item.title = content; + } else if (field == "SO") { + item.publicationTitle = content; + } else if (field == "SN") { + item.ISSN = content; + } else if (field == "PD" || field == "PY") { + if (item.date) { + item.date += " " + content; } else { - content = Zotero.Utilities.trimInternal(line); - if (field == "AF" || field == "AU") { - var author = content.split(","); - item.creators.push({firstName:author[1], lastName:author[0], creatorType:"author"}); - } else if (field == "TI") { - item.title += " " + content; - } else if (field == "AB") { - item.abstractNote += " " + content; - } + item.date = content; } + } else if (field == "VL") { + item.volume = content; + } else if (field == "IS") { + item.issue = content; + } else if (field == "BP") { + item.pages = content; + } else if (field == "EP") { + item.pages += "-" + content; + } else if (field == "AB") { + item.abstractNote = content; + } else if (field == "DI") { + item.DOI = content; } - item.attachments = [{url:item.url, title:"ISI Web of Knowledge Snapshot", mimeType:"text/html"}]; - item.complete(); - }); - }); - }, function() {Zotero.done();}); + } else { + content = Zotero.Utilities.trimInternal(line); + if (field == "AF" || field == "AU") { + var author = content.split(","); + item.creators.push({firstName:author[1], lastName:author[0], creatorType:"author"}); + } else if (field == "TI") { + item.title += " " + content; + } else if (field == "AB") { + item.abstractNote += " " + content; + } + } + } + item.attachments = [{url:item.url, title:"ISI Web of Knowledge Snapshot", mimeType:"text/html"}]; + item.complete(); + } + function() {Zotero.done();}; } \ No newline at end of file