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": "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 **/ |