faster COinS translator
This commit is contained in:
parent
e9c561787c
commit
888f2aee68
|
@ -8,7 +8,7 @@
|
||||||
"maxVersion":"",
|
"maxVersion":"",
|
||||||
"priority":300,
|
"priority":300,
|
||||||
"inRepository":true,
|
"inRepository":true,
|
||||||
"lastUpdated":"2007-09-15 20:08:46"
|
"lastUpdated":"2010-06-16 07:45:00"
|
||||||
}
|
}
|
||||||
|
|
||||||
function detectWeb(doc, url) {
|
function detectWeb(doc, url) {
|
||||||
|
@ -16,24 +16,18 @@ function detectWeb(doc, url) {
|
||||||
|
|
||||||
var encounteredType = false;
|
var encounteredType = false;
|
||||||
|
|
||||||
for(var i=0; i<spanTags.length; i++) {
|
var spans = doc.evaluate('//span[contains(@class, " Z3988") or contains(@class, "Z3988 ") or @class="Z3988"][@title]', doc, null, XPathResult.ANY_TYPE, null);
|
||||||
var spanClass = spanTags[i].getAttribute("class");
|
var span;
|
||||||
if(spanClass) {
|
while(span = spans.iterateNext()) {
|
||||||
var spanClasses = spanClass.split(" ");
|
// determine if it's a valid type
|
||||||
if(Zotero.Utilities.inArray("Z3988", spanClasses)) {
|
var item = new Zotero.Item;
|
||||||
var spanTitle = spanTags[i].getAttribute("title");
|
var success = Zotero.Utilities.parseContextObject(span.title, item);
|
||||||
|
|
||||||
// determine if it's a valid type
|
if(item.itemType) {
|
||||||
var item = new Zotero.Item;
|
if(encounteredType) {
|
||||||
var success = Zotero.Utilities.parseContextObject(spanTitle, item);
|
return "multiple";
|
||||||
|
} else {
|
||||||
if(item.itemType) {
|
encounteredType = item.itemType;
|
||||||
if(encounteredType) {
|
|
||||||
return "multiple";
|
|
||||||
} else {
|
|
||||||
encounteredType = item.itemType;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -147,33 +141,27 @@ function doWeb(doc, url) {
|
||||||
var needFullItems = new Array();
|
var needFullItems = new Array();
|
||||||
var couldUseFullItems = new Array();
|
var couldUseFullItems = new Array();
|
||||||
|
|
||||||
var spanTags = doc.getElementsByTagName("span");
|
var spans = doc.evaluate('//span[contains(@class, " Z3988") or contains(@class, "Z3988 ") or @class="Z3988"][@title]', doc, null, XPathResult.ANY_TYPE, null);
|
||||||
|
var span;
|
||||||
for(var i=0; i<spanTags.length; i++) {
|
while(span = spans.iterateNext()) {
|
||||||
var spanClass = spanTags[i].getAttribute("class");
|
var spanTitle = span.title;
|
||||||
if(spanClass) {
|
var newItem = new Zotero.Item();
|
||||||
var spanClasses = spanClass.split(" ");
|
newItem.repository = false; // do not save repository
|
||||||
if(Zotero.Utilities.inArray("Z3988", spanClasses)) {
|
if(Zotero.Utilities.parseContextObject(spanTitle, newItem)) {
|
||||||
var spanTitle = spanTags[i].getAttribute("title");
|
if(newItem.title) {
|
||||||
var newItem = new Zotero.Item();
|
if(!newItem.creators.length) {
|
||||||
newItem.repository = false; // do not save repository
|
// if we have a title but little other identifying
|
||||||
if(Zotero.Utilities.parseContextObject(spanTitle, newItem)) {
|
// information, say we'll get full item later
|
||||||
if(newItem.title) {
|
newItem.contextObject = spanTitle;
|
||||||
if(!newItem.creators.length) {
|
couldUseFullItems[newItems.length] = true;
|
||||||
// if we have a title but little other identifying
|
|
||||||
// information, say we'll get full item later
|
|
||||||
newItem.contextObject = spanTitle;
|
|
||||||
couldUseFullItems[newItems.length] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// title and creators are minimum data to avoid looking up
|
|
||||||
newItems.push(newItem);
|
|
||||||
} else {
|
|
||||||
// retrieve full item
|
|
||||||
newItem.contextObject = spanTitle;
|
|
||||||
needFullItems.push(newItem);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// title and creators are minimum data to avoid looking up
|
||||||
|
newItems.push(newItem);
|
||||||
|
} else {
|
||||||
|
// retrieve full item
|
||||||
|
newItem.contextObject = spanTitle;
|
||||||
|
needFullItems.push(newItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user