3502bac60c
Not being pushed to 1.0 clients
91 lines
No EOL
3.2 KiB
JavaScript
91 lines
No EOL
3.2 KiB
JavaScript
{
|
|
"translatorID":"252c6a50-0900-41c5-a66b-ec456137c43c",
|
|
"translatorType":4,
|
|
"label":"AcademicJournals.net",
|
|
"creator":"Michael Berkowitz",
|
|
"target":"http://www.academicjournals.net/",
|
|
"minVersion":"1.0.0b4.r5",
|
|
"maxVersion":"",
|
|
"priority":100,
|
|
"inRepository":true,
|
|
"lastUpdated":"2009-01-08 08:19:07"
|
|
}
|
|
|
|
function detectWeb(doc, url) {
|
|
if (url.match('articleno=')) {
|
|
return "journalArticle";
|
|
} else if (url.match('issueno=') || url.match('current.php')) {
|
|
return "multiple";
|
|
}
|
|
}
|
|
|
|
function doWeb(doc, url) {
|
|
var namespace = doc.documentElement.namespaceURI;
|
|
var nsResolver = namespace ? function(prefix) {
|
|
if (prefix == 'x') return prefix; else return null;
|
|
} : namespace;
|
|
|
|
var arts = new Array();
|
|
if (detectWeb(doc, url) == "multiple") {
|
|
var items = new Object();
|
|
var titles = doc.evaluate('//tr[2]/td//table/tbody/tr[1]/td[2]/font', doc, nsResolver, XPathResult.ANY_TYPE, null);
|
|
var title;
|
|
var links = doc.evaluate('//tr[4]/td[2]/div/a[@class="links"]', doc, nsResolver, XPathResult.ANY_TYPE, null);
|
|
var link;
|
|
while ((title = titles.iterateNext()) && (link = links.iterateNext())) {
|
|
items[link.href] = Zotero.Utilities.trimInternal(title.textContent);
|
|
}
|
|
items = Zotero.selectItems(items);
|
|
for (var i in items) {
|
|
arts.push(i);
|
|
}
|
|
} else {
|
|
arts = [url];
|
|
}
|
|
Zotero.Utilities.processDocuments(arts, function(doc) {
|
|
var item = new Zotero.Item("journalArticle");
|
|
item.url = doc.location.href;
|
|
//title
|
|
item.title = Zotero.Utilities.trimInternal(doc.evaluate('//td[2]/table/tbody/tr/td/div/font', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent);
|
|
|
|
//voliss, etc.
|
|
var voliss = doc.evaluate('//table/tbody/tr/td[2]/font/font', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent;
|
|
voliss = voliss.match(/^([^\d]+)(\d+)\s+\((\d+)\):\s+([\d\-]+),\s+(\d+)/);
|
|
Zotero.debug(voliss);
|
|
item.publicationTitle = voliss[1];
|
|
item.volume = voliss[2];
|
|
item.issue = voliss[3];
|
|
item.pages = voliss[4];
|
|
item.date = voliss[5];
|
|
|
|
//authors
|
|
var authorsx = doc.evaluate('//td[2]/font/a[@class="links"]/font', doc, nsResolver, XPathResult.ANY_TYPE, null);
|
|
var author;
|
|
var authors = new Array();
|
|
while (author = authorsx.iterateNext()) {
|
|
authors.push(author.textContent);
|
|
}
|
|
for each (var aut in authors) {
|
|
item.creators.push(Zotero.Utilities.cleanAuthor(aut, "author"));
|
|
}
|
|
|
|
item.abstractNote = Zotero.Utilities.trimInternal(doc.evaluate('//table/tbody/tr/td/div/table/tbody/tr/td[2]/div/font', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().textContent);
|
|
|
|
//attachments
|
|
var pdfurl = doc.evaluate('//a[contains(@href, ".pdf")]', doc, nsResolver, XPathResult.ANY_TYPE, null).iterateNext().href;
|
|
item.attachments = [
|
|
{url:item.url, title:"AcademicJournals.net Snapshot", mimeType:"text/html"},
|
|
{url:pdfurl, title:"AcademicJournals.net PDF", mimeType:"application/pdf"}
|
|
];
|
|
|
|
//tags
|
|
var tagspath = doc.evaluate('//tbody/tr/td/table/tbody/tr[2]/td/font/a[@class="links"]/font', doc, nsResolver, XPathResult.ANY_TYPE, null);
|
|
var tag;
|
|
var tags = new Array();
|
|
while (tag = tagspath.iterateNext()) {
|
|
tags.push(tag.textContent);
|
|
}
|
|
item.tags = tags;
|
|
item.complete();
|
|
}, function() {Zotero.done();});
|
|
} |