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/JurPC.js
Find file
Copy path
Fetching contributors…
Cannot retrieve contributors at this time
{ | |
"translatorID": "b662c6eb-e478-46bd- bad4-23cdfd0c9d67", | |
"label": "JurPC", | |
"creator": "Oliver Vivell and Michael Berkowitz", | |
"target": "^https?://www\\.jurpc\\.de/jurpc/show\\?id=", | |
"minVersion": "3.0", | |
"maxVersion": "", | |
"priority": 100, | |
"inRepository": true, | |
"translatorType": 4, | |
"browserSupport": "gcsibv", | |
"lastUpdated": "2015-01-02 18:03:03" | |
} | |
function detectWeb(doc, url) { | |
//prevent Zotero from throwing an error here | |
var firstLine = ZU.xpathText(doc, '//h2[1]'); | |
if (firstLine.indexOf("Urteil vom") != -1 || firstLine.indexOf("Beschluss vom")!=-1) { | |
return "case"; | |
} | |
else { | |
return "journalArticle"; | |
} | |
} | |
function doWeb(doc, url) { | |
var articles = new Array(); | |
if (detectWeb(doc, url) == "journalArticle") { | |
// Aufsatz gefunden | |
var item = new Zotero.Item('journalArticle'); | |
// Authors and title are in h2-elements | |
var information = ZU.xpath(doc, '//h2'); | |
var aus = information[0].textContent.split("/"); | |
for (var i=0; i< aus.length ; i++) { | |
aus[i] = aus[i].replace(/\*/, "").trim(); | |
item.creators.push(ZU.cleanAuthor(aus[i], "author")); | |
} | |
item.title = ZU.trimInternal(information[1].textContent); | |
var webdoktext = ZU.xpathText(doc, '//h3'); | |
var year = webdoktext.match(/\/(\d{4}),/); | |
var webdok = webdoktext.match(/Dok. (\d+)\//); | |
if (year) item.year = year[1]; | |
if (webdok && year) { | |
item.volume = "WebDok " + webdok[1] + "/" + year[1]; | |
} | |
var doi = ZU.xpathText(doc, '//span[@class="resultinfo left"]') | |
if (doi != null) { | |
item.DOI = ZU.cleanDOI(doi); | |
} | |
item.journal = "JurPC"; | |
item.url = url; | |
item.language = "de-DE"; | |
item.attachments = [{ | |
title: "JurPC Snapshot", | |
document: doc | |
}]; | |
item.complete(); | |
} else { | |
//Case | |
var item = new Zotero.Item('case'); | |
// all information about the case are stored in h2-elements. | |
var information = doc.getElementsByTagName('h2'); | |
var caseInformation = []; | |
for (var i=0; i<information.length; i++) { | |
caseInformation[i] = information[i].textContent; | |
} | |
// does the first row contain court, type of decision and date? Then clean up data! | |
var i = caseInformation[0].indexOf("Urteil vom"); | |
if (i == -1) i = caseInformation[0].indexOf("Beschluss vom") | |
if (i != -1) { | |
caseInformation.splice(1, 0, caseInformation[0].substr(i)); | |
caseInformation[0] = caseInformation[0].substring(0, i); | |
} | |
item.title = caseInformation[3]; | |
item.court = caseInformation[0]; | |
item.docketNumber = caseInformation[2]; | |
item.reporter = "JurPC WebDok"; | |
var cite = ZU.xpathText(doc, '//h3'); | |
var year = cite.match(/\/(\d{4})/); | |
var webdok = cite.match(/Dok. (\d+)\//); | |
if (webdok && year) { | |
item.reporterVolume = " " + webdok[1] + "/" + year[1]; | |
} | |
item.url = url; | |
var date = caseInformation[1].match(/\b(\d{1,2})\.\s*(\d{1,2})\.\s*(\d{4})\b/); | |
if (date) { | |
item.dateDecided = date[3] + "-" + date[2] + "-" + date[1]; | |
} | |
// store type of decision | |
if (/Beschluss./i.test(caseInformation[1])) { | |
item.extra = "{:genre: Beschl.}"; | |
} | |
else if (/Urteil/i.test(caseInformation[1])) { | |
item.extra = "{:genre: Urt.}"; | |
} | |
var doi = ZU.xpathText(doc, '//span[@class="resultinfo left"]') | |
if (doi) { | |
item.DOI = ZU.cleanDOI(doi); | |
} | |
item.language = "de-DE"; | |
item.attachments = [{ | |
title: "JurPC Snapshot", | |
document: doc | |
}]; | |
item.complete(); | |
} | |
} | |
/** BEGIN TEST CASES **/ | |
var testCases = [ | |
{ | |
"type": "web", | |
"url": "http://www.jurpc.de/jurpc/show?id=20110132", | |
"items": [ | |
{ | |
"itemType": "journalArticle", | |
"title": "Die datenschutzrechtliche Einwilligung des Beschäftigten", | |
"creators": [ | |
{ | |
"firstName": "Johannes", | |
"lastName": "Habermalz", | |
"creatorType": "author" | |
} | |
], | |
"DOI": "10.7328/jurpcb/2011268130", | |
"language": "de-DE", | |
"libraryCatalog": "JurPC", | |
"url": "http://www.jurpc.de/jurpc/show?id=20110132", | |
"volume": "WebDok 132/2011", | |
"attachments": [ | |
{ | |
"title": "JurPC Snapshot" | |
} | |
], | |
"tags": [], | |
"notes": [], | |
"seeAlso": [] | |
} | |
] | |
}, | |
{ | |
"type": "web", | |
"url": "http://www.jurpc.de/jurpc/show?id=20000220", | |
"items": [ | |
{ | |
"itemType": "case", | |
"caseName": "OEM-Version", | |
"creators": [], | |
"dateDecided": "2000-07-06", | |
"court": "BGH", | |
"docketNumber": "I ZR 244/97", | |
"extra": "{:genre: Urt.}", | |
"language": "de-DE", | |
"reporter": "JurPC WebDok", | |
"reporterVolume": "220/2000", | |
"url": "http://www.jurpc.de/jurpc/show?id=20000220", | |
"attachments": [ | |
{ | |
"title": "JurPC Snapshot" | |
} | |
], | |
"tags": [], | |
"notes": [], | |
"seeAlso": [] | |
} | |
] | |
}, | |
{ | |
"type": "web", | |
"url": "http://www.jurpc.de/jurpc/show?id=20140193", | |
"items": [ | |
{ | |
"itemType": "case", | |
"caseName": "Zur Haftung des Domainregistrars für Domaininhalte", | |
"creators": [], | |
"dateDecided": "2014-10-22", | |
"court": "Saarländisches Oberlandesgericht", | |
"docketNumber": "1 U 25/14", | |
"extra": "{:genre: Urt.}", | |
"language": "de-DE", | |
"reporter": "JurPC WebDok", | |
"reporterVolume": "193/2014", | |
"url": "http://www.jurpc.de/jurpc/show?id=20140193", | |
"attachments": [ | |
{ | |
"title": "JurPC Snapshot" | |
} | |
], | |
"tags": [], | |
"notes": [], | |
"seeAlso": [] | |
} | |
] | |
}, | |
{ | |
"type": "web", | |
"url": "http://www.jurpc.de/jurpc/show?id=20140165", | |
"items": [ | |
{ | |
"itemType": "case", | |
"caseName": "Deus Ex", | |
"creators": [], | |
"dateDecided": "2014-05-15", | |
"court": "BGH", | |
"docketNumber": "I ZB 71/13", | |
"extra": "{:genre: Beschl.}", | |
"language": "de-DE", | |
"reporter": "JurPC WebDok", | |
"reporterVolume": "165/2014", | |
"url": "http://www.jurpc.de/jurpc/show?id=20140165", | |
"attachments": [ | |
{ | |
"title": "JurPC Snapshot" | |
} | |
], | |
"tags": [], | |
"notes": [], | |
"seeAlso": [] | |
} | |
] | |
}, | |
{ | |
"type": "web", | |
"url": "http://www.jurpc.de/jurpc/show?id=20140194", | |
"items": [ | |
{ | |
"itemType": "journalArticle", | |
"title": "Tagungsbericht über den 3. IT-Rechtstag in Frankfurt am Main", | |
"creators": [ | |
{ | |
"firstName": "Wolfgang", | |
"lastName": "Kuntz", | |
"creatorType": "author" | |
} | |
], | |
"DOI": "10.7328/jurpcb20142912190", | |
"language": "de-DE", | |
"libraryCatalog": "JurPC", | |
"url": "http://www.jurpc.de/jurpc/show?id=20140194", | |
"volume": "WebDok 194/2014", | |
"attachments": [ | |
{ | |
"title": "JurPC Snapshot" | |
} | |
], | |
"tags": [], | |
"notes": [], | |
"seeAlso": [] | |
} | |
] | |
} | |
] | |
/** END TEST CASES **/ |