faster COinS translator

This commit is contained in:
Simon Kornblith 2010-06-16 07:44:31 +00:00
parent e9c561787c
commit 888f2aee68

View File

@ -8,7 +8,7 @@
"maxVersion":"",
"priority":300,
"inRepository":true,
"lastUpdated":"2007-09-15 20:08:46"
"lastUpdated":"2010-06-16 07:45:00"
}
function detectWeb(doc, url) {
@ -16,16 +16,12 @@ function detectWeb(doc, url) {
var encounteredType = false;
for(var i=0; i<spanTags.length; i++) {
var spanClass = spanTags[i].getAttribute("class");
if(spanClass) {
var spanClasses = spanClass.split(" ");
if(Zotero.Utilities.inArray("Z3988", spanClasses)) {
var spanTitle = spanTags[i].getAttribute("title");
var spans = doc.evaluate('//span[contains(@class, " Z3988") or contains(@class, "Z3988 ") or @class="Z3988"][@title]', doc, null, XPathResult.ANY_TYPE, null);
var span;
while(span = spans.iterateNext()) {
// determine if it's a valid type
var item = new Zotero.Item;
var success = Zotero.Utilities.parseContextObject(spanTitle, item);
var success = Zotero.Utilities.parseContextObject(span.title, item);
if(item.itemType) {
if(encounteredType) {
@ -35,8 +31,6 @@ function detectWeb(doc, url) {
}
}
}
}
}
return encounteredType;
}
@ -147,14 +141,10 @@ function doWeb(doc, url) {
var needFullItems = new Array();
var couldUseFullItems = new Array();
var spanTags = doc.getElementsByTagName("span");
for(var i=0; i<spanTags.length; i++) {
var spanClass = spanTags[i].getAttribute("class");
if(spanClass) {
var spanClasses = spanClass.split(" ");
if(Zotero.Utilities.inArray("Z3988", spanClasses)) {
var spanTitle = spanTags[i].getAttribute("title");
var spans = doc.evaluate('//span[contains(@class, " Z3988") or contains(@class, "Z3988 ") or @class="Z3988"][@title]', doc, null, XPathResult.ANY_TYPE, null);
var span;
while(span = spans.iterateNext()) {
var spanTitle = span.title;
var newItem = new Zotero.Item();
newItem.repository = false; // do not save repository
if(Zotero.Utilities.parseContextObject(spanTitle, newItem)) {
@ -175,8 +165,6 @@ function doWeb(doc, url) {
}
}
}
}
}
Zotero.debug(needFullItems);
if(needFullItems.length) {