From 431de84f9fea11d6df37a63989dc40d1a7871975 Mon Sep 17 00:00:00 2001 From: Avram Lyon Date: Mon, 4 Apr 2011 06:25:09 +0000 Subject: [PATCH] Trans: Committing PDF saving fix for IEEE Xplore. See http://forums.zotero.org/discussion/16283/ --- translators/IEEE Xplore.js | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/translators/IEEE Xplore.js b/translators/IEEE Xplore.js index 7e741ce9de..72a8f31e89 100644 --- a/translators/IEEE Xplore.js +++ b/translators/IEEE Xplore.js @@ -105,14 +105,13 @@ function addIdentifier(identifier, item) { } } -function scrape(doc,url) -{ +function scrape(doc,url) { var namespace = doc.documentElement.namespaceURI; var nsResolver = namespace ? function(prefix) { if (prefix == 'x') return namespace; else return null; } : null; - var newItem=new Zotero.Item("journalArticle"); + var newItem=new Zotero.Item("journalArticle"); var temp; var xpath; var row; @@ -183,8 +182,6 @@ function scrape(doc,url) Zotero.debug("Ignoring meta tag: " + tag + " => " + value); } } - - if (pdf) newItem.attachments = [{url:pdf, title:"IEEE Xplore Full Text PDF", mimeType:"application/pdf"}]; if (html) newItem.attachments = [{url:html, title:"IEEE Xplore Full Text HTML"}]; if (pages[0] && pages[1]) newItem.pages = pages.join('-') @@ -195,7 +192,21 @@ function scrape(doc,url) var abstractNode = doc.evaluate('//a[@name="Abstract"]/following-sibling::p[1]', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); if (abstractNode) newItem.abstractNote = Zotero.Utilities.trimInternal(abstractNode.textContent); } - newItem.complete(); + + if (pdf) { + Zotero.Utilities.processDocuments([pdf], function (doc, url) { + var namespace = doc.documentElement.namespaceURI; + var nsResolver = namespace ? function(prefix) { + if (prefix == 'x') return namespace; else return null; + } : null; + + var pdfFrame = doc.evaluate('//frame[2]', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext(); + if (pdfFrame) newItem.attachments = [{url:pdfFrame.src, title:"IEEE Xplore Full Text PDF", mimeType:"application/pdf"}]; + newItem.complete(); + }, null); + } else { + newItem.complete(); + } } // Implementation of ISBN and ISSN check-digit verification