Permalink
Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.
Sign up
Fetching contributors…
Cannot retrieve contributors at this time
{ | |
"translatorID": "a823550b-6475-4b20-8539-a3c416906228", | |
"label": "Notre Dame Philosophical Reviews", | |
"creator": "Emiliano Heyns", | |
"target": "^https?://ndpr\\.nd\\.edu/", | |
"minVersion": "2.1", | |
"maxVersion": "", | |
"priority": 100, | |
"inRepository": true, | |
"translatorType": 4, | |
"browserSupport": "gcsibv", | |
"lastUpdated": "2016-01-04 21:04:49" | |
} | |
// Generated by CoffeeScript 1.10.0 | |
/* | |
Notre Dame Philosophical Reviews Translator | |
Copyright (C) 2016 Emiliano Heyns | |
This program is free software: you can redistribute it and/or modify | |
it under the terms of the GNU Affero General Public License as | |
the Free Software Foundation, either version 3 of the License, or | |
(at your option) any later version. | |
This program is distributed in the hope that it will be useful, | |
but WITHOUT ANY WARRANTY; without even the implied warranty of | |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
GNU Affero General Public License for more details. | |
You should have received a copy of the GNU Affero General Public License | |
along with this program. If not, see <http://www.gnu.org/licenses/>. | |
*/ | |
var detectWeb, doWeb, scrape, testCases; | |
detectWeb = function(doc, url) { | |
if (url.indexOf('://ndpr.nd.edu/news') > 0) { | |
return 'journalArticle'; | |
} | |
if (url.indexOf('://ndpr.nd.edu/recent-reviews') > 0) { | |
return 'multiple'; | |
} | |
if (url.indexOf('://ndpr.nd.edu/search') > 0) { | |
return 'multiple'; | |
} | |
return null; | |
}; | |
scrape = function(doc, url) { | |
var author, bibliography, date, index, item, m, reviewedby, reviewer, title; | |
item = new Zotero.Item('journalArticle'); | |
item.publication = 'Notre Dame Philosophical Reviews'; | |
item.ISSN = '1538-1617'; | |
item.url = doc.location.href; | |
date = doc.getElementsByClassName('pubdate')[0]; | |
if (date) { | |
item.date = date.getAttribute('datetime') || ''; | |
item.date = item.date.replace(/T.*/, ''); | |
if (m = item.date.match(/^([0-9]{4})([0-9]{2})([0-9]{2})$/)) { | |
item.date = m[1] + "-" + m[2] + "-" + m[3]; | |
} | |
} | |
title = doc.getElementsByClassName('entry-title')[0]; | |
if (title) { | |
title = title.textContent; | |
item.title = "Review of <i>" + title + "</i>"; | |
/* shorten to before first colon */ | |
index = title.indexOf(':'); | |
if (index >= 0) { | |
title = title.substr(0, index); | |
} | |
/* shorten to after first question mark */ | |
index = title.indexOf('?'); | |
if (index >= 0) { | |
index++; | |
if (index !== title.length) { | |
title = title.substr(0, index); | |
} | |
} | |
title = "Review of <i>" + title + "</i>"; | |
if (title !== item.title) { | |
item.shortTitle = title; | |
} | |
} | |
author = doc.getElementsByClassName('author')[0]; | |
if (author) { | |
item.creators.push(Zotero.Utilities.cleanAuthor(author.textContent, 'reviewedAuthor')); | |
} | |
reviewer = doc.getElementsByClassName('reviewers')[0]; | |
if (reviewer) { | |
reviewedby = doc.getElementsByClassName('reviewed-by')[0]; | |
if (reviewedby) { | |
reviewer.removeChild(reviewedby); | |
} | |
reviewer = reviewer.textContent.replace(/,.*/, '').trim(); | |
item.creators.push(Zotero.Utilities.cleanAuthor(reviewer, 'author')); | |
} | |
bibliography = doc.getElementsByClassName('bibliography')[0]; | |
if (bibliography) { | |
item.notes.push({ | |
note: "<h1>Bibliography</h1>" + bibliography.innerHTML | |
}); | |
} | |
item.attachments.push({ | |
document: doc, | |
title: "NDPR Full Text Snapshot" | |
}); | |
return item.complete(); | |
}; | |
doWeb = function(doc, url) { | |
var i, items, j, len, len1, link, ref, ref1; | |
if (detectWeb(doc, url) !== 'multiple') { | |
return scrape(doc, url); | |
} | |
items = {}; | |
ref = doc.querySelectorAll('h1.entry-title a'); | |
for (i = 0, len = ref.length; i < len; i++) { | |
link = ref[i]; | |
items[link.getAttribute('href')] = link.textContent; | |
} | |
ref1 = doc.querySelectorAll('div.search-record h3 a'); | |
for (j = 0, len1 = ref1.length; j < len1; j++) { | |
link = ref1[j]; | |
items[link.getAttribute('href')] = link.textContent.replace(/\/\/.*/, ''); | |
} | |
return Zotero.selectItems(items, function(items) { | |
var articles; | |
if (!items) { | |
return true; | |
} | |
articles = Object.keys(items); | |
ZU.processDocuments(articles, scrape); | |
}); | |
}; | |
/** BEGIN TEST CASES **/ | |
var testCases = [ | |
{ | |
"type": "web", | |
"url": "https://ndpr.nd.edu/news/24395-pleasure-and-the-good-life-concerning-the-nature-varieties-and-plausibility-of-hedonism/", | |
"items": [ | |
{ | |
"itemType": "journalArticle", | |
"title": "Review of <i>Pleasure and the Good Life: Concerning the Nature, Varieties, and Plausibility of Hedonism</i>", | |
"creators": [ | |
{ | |
"firstName": "Fred", | |
"lastName": "Feldman", | |
"creatorType": "reviewedAuthor" | |
}, { | |
"firstName": "Leonard D.", | |
"lastName": "Katz", | |
"creatorType": "author" | |
} | |
], | |
"date": "2005-03-02", | |
"ISSN": "1538-1617", | |
"libraryCatalog": "Notre Dame Philosophical Reviews", | |
"shortTitle": "Review of <i>Pleasure and the Good Life</i>", | |
"url": "https://ndpr.nd.edu/news/24395-pleasure-and-the-good-life-concerning-the-nature-varieties-and-plausibility-of-hedonism/", | |
"attachments": [ | |
{ | |
"title": "NDPR Full Text Snapshot" | |
} | |
], | |
"tags": [], | |
"notes": [ | |
{ | |
"note": "<h1>Bibliography</h1><p>Feldman, Fred, <em>Pleasure and the Good Life: Concerning the Nature, Varieties, and Plausibility of Hedonism</em>, Oxford University Press, 2004, 221pp, $35.00 (hbk), ISBN 019926516X.</p>" | |
} | |
], | |
"seeAlso": [] | |
} | |
] | |
}, { | |
"type": "web", | |
"url": "https://ndpr.nd.edu/news/63254-locke-s-touchy-subjects-materialism-and-immortality/", | |
"items": [ | |
{ | |
"itemType": "journalArticle", | |
"title": "Review of <i>Locke's Touchy Subjects: Materialism and Immortality</i>", | |
"creators": [ | |
{ | |
"firstName": "Nicholas", | |
"lastName": "Jolley", | |
"creatorType": "reviewedAuthor" | |
}, { | |
"firstName": "Shelley", | |
"lastName": "Weinberg", | |
"creatorType": "author" | |
} | |
], | |
"date": "2015-12-17", | |
"ISSN": "1538-1617", | |
"libraryCatalog": "Notre Dame Philosophical Reviews", | |
"shortTitle": "Review of <i>Locke's Touchy Subjects</i>", | |
"url": "https://ndpr.nd.edu/news/63254-locke-s-touchy-subjects-materialism-and-immortality/", | |
"attachments": [ | |
{ | |
"title": "NDPR Full Text Snapshot" | |
} | |
], | |
"tags": [], | |
"notes": [ | |
{ | |
"note": "<h1>Bibliography</h1><p>Nicholas Jolley, <em>Locke's Touchy Subjects: Materialism and Immortality</em>, Oxford University Press, 2015, 142pp., $50.00 (hbk), ISBN 9780198737094.</p>" | |
} | |
], | |
"seeAlso": [] | |
} | |
] | |
} | |
]; | |
/** END TEST CASES **/ |