added support for the PNAS Collections

This commit is contained in:
Matt Burton 2008-12-27 06:07:14 +00:00
parent c7b2c84869
commit 4a85179ad0

View file

@ -1,9 +1,9 @@
{ {
"translatorID":"8c1f42d5-02fa-437b-b2b2-73afc768eb07", "translatorID":"8c1f42d5-02fa-437b-b2b2-73afc768eb07",
"translatorType":4, "translatorType":4,
"label":"PNAS", "label":"PNAS (HighWire 2.0)",
"creator":"Matt Burton", "creator":"Matt Burton",
"target":"http://[^/]*\\.pnas\\.org[^/]*/", "target":"http://www\\.pnas\\.org/(content|search|cgi/collection/.+)",
"minVersion":"1.0.0b4.r5", "minVersion":"1.0.0b4.r5",
"maxVersion":"", "maxVersion":"",
"priority":100, "priority":100,
@ -12,7 +12,7 @@
} }
function detectWeb(doc, url) { function detectWeb(doc, url) {
if (url.match("search") || doc.title.match("Table of Contents") || doc.title.match("Early Edition")) { if (url.match("search") || url.match("content/by/section") || doc.title.match("Table of Contents") || doc.title.match("Early Edition") || url.match("cgi/collection/.+")) {
return "multiple"; return "multiple";
} else if (url.match("content/[0-9]")) { } else if (url.match("content/[0-9]")) {
return "journalArticle"; return "journalArticle";
@ -24,9 +24,13 @@ function doWeb(doc, url) {
if (detectWeb(doc, url) == "multiple") { if (detectWeb(doc, url) == "multiple") {
var items = new Object(); var items = new Object();
if (doc.title.match("Table of Contents") || doc.title.match("Early Edition")) { if (doc.title.match("Table of Contents") || doc.title.match("Early Edition")) {
var searchx = '//li[@class = "cit toc-cit"]'; var searchx = '//li[@class = "cit toc-cit" and not(ancestor::div/h2/a/text() = "Correction" or ancestor::div/h2/a/text() = "Corrections")]';
var titlex = './/h4'; var titlex = './/h4';
} else { } else if (url.match("content/by/section") || url.match("cgi/collection/.+")) {
var searchx = '//li[contains(@class, "results-cit cit")]';
var titlex = './/span[@class = "cit-title"]';
}
else {
var searchx = '//div[@class = "results-cit cit"]'; var searchx = '//div[@class = "results-cit cit"]';
var titlex = './/span[@class = "cit-title"]'; var titlex = './/span[@class = "cit-title"]';
} }
@ -51,8 +55,13 @@ function doWeb(doc, url) {
} }
Zotero.Utilities.HTTP.doGet(arts, function(text) { Zotero.Utilities.HTTP.doGet(arts, function(text) {
var id = text.match(/=([^=]+)\">\s*Download to citation manager/)[1]; var id = text.match(/=([^=]+)\">\s*Download to citation manager/)[1];
var newurl = newurls.shift(); var newurl = newurls.shift();
var pdfurl = newurl.slice(0, newurl.lastIndexOf(".")) + ".full.pdf"; if (newurl.match("cgi/content")) {
var pdfurl = newurl.replace(/cgi\/content\/abstract/, "content") + ".full.pdf";
} else {
// This is not ideal...todo: brew a regex that grabs the correct URL
var pdfurl = newurl.slice(0, newurl.lastIndexOf(".")) + ".full.pdf";
}
var get = 'http://www.pnas.org/citmgr?type=refman&gca=' + id; var get = 'http://www.pnas.org/citmgr?type=refman&gca=' + id;
Zotero.Utilities.HTTP.doGet(get, function(text) { Zotero.Utilities.HTTP.doGet(get, function(text) {
var translator = Zotero.loadTranslator("import"); var translator = Zotero.loadTranslator("import");