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
Fetching contributors…
Cannot retrieve contributors at this time
{ | |
"translatorID": "ab88d517-d88c-4a73-a0ad-c94c76cca849", | |
"label": "eMedicine", | |
"creator": "William Smith", | |
"target": "^https?://emedicine\\.medscape\\.com/article/", | |
"minVersion": "1.0.0b4.r5", | |
"maxVersion": "", | |
"priority": 100, | |
"inRepository": true, | |
"translatorType": 4, | |
"browserSupport": "gcsibv", | |
"lastUpdated": "2013-04-15 18:04:37" | |
} | |
// Emedicine.Medscape.com translator. | |
// Version 1.00 | |
// By William Smith, see http://www.willsmith.org/contactme/ | |
function detectWeb(doc, url) { | |
if (doc.location.href.match("(overview|treatment|diagnosis|followup|media)")) { | |
return "journalArticle"; | |
} | |
} | |
// Everything lives in Metas. Very convenient. | |
function useMeta (doc, newItem, field, zoteroField) { | |
xpath='//meta[@name="' + field + '"]/@content'; | |
temp=doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null).iterateNext(); | |
if (temp) | |
{ | |
newItem[zoteroField] =temp.value; | |
} | |
} | |
function getMeta (doc, newItem, field) { | |
xpath='//meta[@name="' + field + '"]/@content'; | |
temp=doc.evaluate(xpath, doc, null, XPathResult.ANY_TYPE, null); | |
return temp; | |
} | |
function scrape(doc, url) { | |
var namespace = doc.documentElement.namespaceURI; | |
var nsResolver = namespace ? function(prefix) { | |
if (prefix == 'x') return namespace; else return null; | |
} : null; | |
var fieldTitle; | |
var newItem = new Zotero.Item("journalArticle"); | |
newItem.publication = 'Medscape - eMedicine'; | |
// Geta few useful fields. | |
useMeta(doc, newItem, "title", "title"); | |
useMeta(doc, newItem, "date" , "date" ); | |
useMeta(doc, newItem, "book" , "repository"); | |
useMeta(doc, newItem, "description" , "abstractNote"); | |
newItem.abstractNote = newItem.abstractNote.replace(/^(Overview|Treatment|Diagnosis|Followup|Media):\s+/, ""); | |
// Authors - we only handle one. | |
authors = getMeta(doc, newItem, "authors"); | |
if (!String(authors).match(/[a-z]/)) { | |
authors = authors.iterateNext().textContent; | |
Zotero.debug('author: <'+authors+'>'); | |
newItem.creators.push(Zotero.Utilities.cleanAuthor(authors, "author")); | |
} | |
// Keywords. | |
keywords = getMeta(doc, newItem, "keywords"); | |
if (keywords) { | |
keywords = keywords.iterateNext().textContent; | |
Zotero.debug('keywords: <'+keywords+'>'); | |
keywords = keywords.split(","); | |
for (var i=0;i<keywords.length; i++) { | |
Zotero.debug('keyword['+i+']: <'+keywords[i]+'>'); | |
newItem.tags[i] = Zotero.Utilities.cleanTags(keywords[i], ""); | |
} | |
} | |
newItem.url = url; | |
// Attachment doesn't seem to work - misses a stylesheet or something, and looks ugly. | |
// newItem.attachments.push({url:url, title:"eMedicine Snapshot",mimeType:"text/html"}); | |
newItem.complete(); | |
} | |
function doWeb(doc, url) { | |
var namespace = doc.documentElement.namespaceURI; | |
var nsResolver = namespace ? function(prefix) { | |
if (prefix == 'x') return namespace; else return null; | |
} : null; | |
scrape(doc,url); | |
} | |
/** BEGIN TEST CASES **/ | |
var testCases = [ | |
{ | |
"type": "web", | |
"url": "http://emedicine.medscape.com/article/163751-overview", | |
"items": [ | |
{ | |
"itemType": "journalArticle", | |
"title": "Brugada Syndrome: Practice Essentials, Background, Pathophysiology", | |
"creators": [], | |
"date": "2017-03-02-12:28", | |
"abstractNote": "Brugada syndrome is a disorder characterized by sudden death associated with one of several ECG patterns characterized by incomplete right bundle-branch block and ST-segment elevations in the anterior precordial leads. See the image below.", | |
"libraryCatalog": "eMedicine", | |
"shortTitle": "Brugada Syndrome", | |
"url": "http://emedicine.medscape.com/article/163751-overview", | |
"attachments": [], | |
"tags": [ | |
"Brugada Syndrome Overview" | |
], | |
"notes": [], | |
"seeAlso": [] | |
} | |
] | |
} | |
] | |
/** END TEST CASES **/ |