Permalink
Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign up
translators/PEP Web.js
Find file
Copy path
Fetching contributors…
Cannot retrieve contributors at this time
{ | |
"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 **/ |