Initial Commit
This commit is contained in:
165
translators/PEP Web.js
Normal file
165
translators/PEP Web.js
Normal file
@@ -0,0 +1,165 @@
|
||||
{
|
||||
"translatorID": "32ad4782-b106-4ccb-8ae1-ff102ba93eef",
|
||||
"label": "PEP Web",
|
||||
"creator": "Akilesh Ayyar",
|
||||
"target": "^https?://www\\.pep-web\\.org",
|
||||
"minVersion": "1.0.0b3.r1",
|
||||
"maxVersion": "",
|
||||
"priority": 100,
|
||||
"inRepository": true,
|
||||
"translatorType": 4,
|
||||
"browserSupport": "gcsibv",
|
||||
"lastUpdated": "2015-03-20 06:07:35"
|
||||
}
|
||||
|
||||
//Only works for journal articles, and only for single entries.
|
||||
//Author names sometimes omit periods after the first initials.
|
||||
|
||||
function detectWeb(doc, url) {
|
||||
|
||||
if (url.indexOf("/document.php")!=-1)
|
||||
return "journalArticle";
|
||||
}
|
||||
|
||||
|
||||
function scrape(doc, url) {
|
||||
|
||||
var newItem = new Zotero.Item("journalArticle");
|
||||
newItem.url = doc.location.href;
|
||||
var citeString = ZU.xpathText(doc, '//span[@id="maincite"]');
|
||||
var titleString = ZU.xpathText(doc, '//p[@class="title"]/a/text()');
|
||||
if (!titleString) titleString = ZU.xpathText(doc, '//p[@class="title"]/text()[1]');
|
||||
//authors
|
||||
var authors = citeString.match(/(^.*?)\(/)[1].toString();
|
||||
if (authors == ' ') {
|
||||
authors = "Unknown";
|
||||
}
|
||||
|
||||
var currentauthor;
|
||||
|
||||
//grab all but last author, if there are more than one
|
||||
while (authors.match(/^(.*?)(\,)(\s)([A-Z]\.)*\,\s/)) {
|
||||
currentauthor = authors.match(/^(.*?)(\,)(\s)([A-Z]\.)*/)[0].toString();
|
||||
newItem.creators.push(Zotero.Utilities.cleanAuthor(currentauthor, "author", true));
|
||||
authors = authors.replace(/^(.*?)(\,)(\s)([A-Z]\.)*\,\s/, '');
|
||||
}
|
||||
|
||||
//grab remaining author, or sole author if there's only one
|
||||
if (authors != null) {
|
||||
currentauthor = authors;
|
||||
newItem.creators.push(Zotero.Utilities.cleanAuthor(currentauthor, "author", true));
|
||||
}
|
||||
|
||||
//title
|
||||
newItem.title = titleString;
|
||||
|
||||
//year
|
||||
var year = citeString.match(/\([0-9][0-9][0-9][0-9]\)/).toString();
|
||||
year = year.replace(/\(/, '');
|
||||
year = year.replace(/\)/, '');
|
||||
newItem.date = year;
|
||||
|
||||
//publication name
|
||||
var pubname = citeString.match(/(\)\.\s)(.*)(\,)/)
|
||||
if (pubname) pubname = pubname[0];
|
||||
var pubminus = citeString.match(/(\)\.\s)(.*?)(\.)/);
|
||||
if (pubminus) pubminus = pubminus[0];
|
||||
else pubminus = "";
|
||||
if (pubname){
|
||||
pubname = pubname.replace(pubminus, '');
|
||||
pubname = pubname.replace(/\,/, '');
|
||||
pubname = pubname.replace(/\.*/, '');
|
||||
pubname = pubname.replace(/^\s*/, '');
|
||||
pubname = pubname.replace(/\s*$/, '')
|
||||
newItem.publicationTitle = pubname;
|
||||
}
|
||||
|
||||
//volume
|
||||
var volumeandpages = citeString.match(/[0-9]*\:([0-9]*(\-?)[0-9]*)\.$/);
|
||||
if (volumeandpages){
|
||||
volumeandpages = volumeandpages[0];
|
||||
var volume = volumeandpages.match(/([0-9]*)\:/);
|
||||
if (volume) newItem.volume = volume[1];
|
||||
|
||||
//pages
|
||||
var pages = volumeandpages.match(/\:([0-9]*)(\-?)([0-9]*)/)[0].toString();
|
||||
pages = pages.replace(":", '');
|
||||
pages = pages.replace(".", '');
|
||||
newItem.pages = pages;
|
||||
}
|
||||
newItem.attachments.push({url:doc.location.href, title:"PEP Web Snapshot", mimeType:"text/html"});
|
||||
|
||||
newItem.complete();
|
||||
}
|
||||
|
||||
|
||||
function doWeb(doc, url) {
|
||||
scrape(doc, url)
|
||||
}
|
||||
/** BEGIN TEST CASES **/
|
||||
var testCases = [
|
||||
{
|
||||
"type": "web",
|
||||
"url": "http://www.pep-web.org/document.php?id=ajp.068.0024a",
|
||||
"items": [
|
||||
{
|
||||
"itemType": "journalArticle",
|
||||
"title": "Childhood and Trauma",
|
||||
"creators": [
|
||||
{
|
||||
"firstName": "P. J.",
|
||||
"lastName": "Boschan",
|
||||
"creatorType": "author"
|
||||
}
|
||||
],
|
||||
"date": "2008",
|
||||
"accessDate": "CURRENT_TIMESTAMP",
|
||||
"libraryCatalog": "PEP Web",
|
||||
"pages": "24-32",
|
||||
"publicationTitle": "Am. J. Psychoanal.",
|
||||
"url": "http://www.pep-web.org/document.php?id=ajp.068.0024a",
|
||||
"volume": "68",
|
||||
"attachments": [
|
||||
{
|
||||
"title": "PEP Web Snapshot",
|
||||
"mimeType": "text/html"
|
||||
}
|
||||
],
|
||||
"tags": [],
|
||||
"notes": [],
|
||||
"seeAlso": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "web",
|
||||
"url": "http://www.pep-web.org/document.php?id=se.014.0237a&type=hitlist&num=0&query=zone1%2Cparagraphs|zone2%2Cparagraphs|author%2Cfreud|title%2Cmourning+and+melancholia|viewperiod%2Cweek|sort%2Cyear%2Ca#hit1",
|
||||
"items": [
|
||||
{
|
||||
"itemType": "journalArticle",
|
||||
"title": "Mourning and Melancholia",
|
||||
"creators": [
|
||||
{
|
||||
"firstName": "S.",
|
||||
"lastName": "Freud",
|
||||
"creatorType": "author"
|
||||
}
|
||||
],
|
||||
"date": "1917",
|
||||
"libraryCatalog": "PEP Web",
|
||||
"publicationTitle": "The Standard Edition of the Complete Psychological Works of Sigmund Freud Volume XIV (1914-1916): On the History of the Psycho-Analytic Movement, Papers on Metapsychology and Other Works,",
|
||||
"url": "http://www.pep-web.org/document.php?id=se.014.0237a&type=hitlist&num=0&query=zone1%2Cparagraphs|zone2%2Cparagraphs|author%2Cfreud|title%2Cmourning+and+melancholia|viewperiod%2Cweek|sort%2Cyear%2Ca#hit1",
|
||||
"attachments": [
|
||||
{
|
||||
"title": "PEP Web Snapshot",
|
||||
"mimeType": "text/html"
|
||||
}
|
||||
],
|
||||
"tags": [],
|
||||
"notes": [],
|
||||
"seeAlso": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
/** END TEST CASES **/
|
||||
Reference in New Issue
Block a user