Initial Commit
This commit is contained in:
252
translators/Cornell LII.js
Normal file
252
translators/Cornell LII.js
Normal file
@@ -0,0 +1,252 @@
|
||||
{
|
||||
"translatorID": "930d49bc-44a1-4c22-9dde-aa6f72fb11e5",
|
||||
"label": "Cornell LII",
|
||||
"creator": "Bill McKinney",
|
||||
"target": "^https?://www\\.law\\.cornell\\.edu/supct/.+",
|
||||
"minVersion": "3.0",
|
||||
"maxVersion": "",
|
||||
"priority": 100,
|
||||
"inRepository": true,
|
||||
"translatorType": 4,
|
||||
"browserSupport": "gcsbv",
|
||||
"lastUpdated": "2013-02-09 12:09:10"
|
||||
}
|
||||
|
||||
function detectWeb(doc, url) {
|
||||
var liiRegexp = /\/supct\/html\/.+/
|
||||
if (liiRegexp.test(url)) {
|
||||
return "case";
|
||||
} else {
|
||||
var aTags = doc.getElementsByTagName("a");
|
||||
for (var i=0; i<aTags.length; i++) {
|
||||
if (liiRegexp.test(aTags[i].href)) {
|
||||
return "multiple";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function scrape(doc, url) {
|
||||
|
||||
var caselawCourt = "U.S. Supreme Court";
|
||||
var caselawJurisdiction = "Federal";
|
||||
var caselawSourceReporter = "U.S.";
|
||||
var caselawSourceVolume = "___";
|
||||
var caselawSourceStartPage = "___";
|
||||
var caselawParallelSourceVolume = "___";
|
||||
var caselawParallelSourceStartPage = "___";
|
||||
var caselawParallelSourceReporter = "___";
|
||||
var caselawDecisionYear = "";
|
||||
|
||||
var newItem = new Zotero.Item("case");
|
||||
newItem.url = doc.location.href;
|
||||
newItem.language = "en-us";
|
||||
newItem.court = "U.S. Supreme Court";
|
||||
newItem.reporter = "U.S.";
|
||||
|
||||
/*
|
||||
// LII provides a bunch of meta tags to harvest - left this here for future use
|
||||
//associateMeta(newItem, metaTags, "DOCKET", "caselawDocket");
|
||||
//associateMeta(newItem, metaTags, "PARTY1", "caselawParty1");
|
||||
//associateMeta(newItem, metaTags, "PARTY2", "caselawParty2");
|
||||
//associateMeta(newItem, metaTags, "ARGDATE", "caselawArguedDate");
|
||||
//associateMeta(newItem, metaTags, "DECDATE", "dateDecided");
|
||||
//associateMeta(newItem, metaTags, "ACTION", "caselawCourtAction");
|
||||
*/
|
||||
var casename;
|
||||
if (casename = ZU.xpathText(doc, '//meta[@name="CASENAME"]/@content')){
|
||||
newItem.title = casename;
|
||||
newItem.caseName= casename;
|
||||
var tmpCasename = newItem.caseName;
|
||||
tmpCasename = Zotero.Utilities.capitalizeTitle(tmpCasename.toLowerCase(), true);
|
||||
tmpCasename = tmpCasename.replace("V.", "v.");
|
||||
newItem.caseName = tmpCasename;
|
||||
newItem.shortTitle = tmpCasename;
|
||||
}
|
||||
|
||||
var history;
|
||||
if (history = ZU.xpathText(doc, '//meta[@name="COURTBELOW"]/@content')){
|
||||
newItem.history = history;
|
||||
}
|
||||
|
||||
// judge
|
||||
var j = ZU.xpathText(doc, '//meta[contains(@name,"AUTHOR")]/@content');
|
||||
if (j) {
|
||||
// Some entries the AUTHOR meta tag content is empty, this makes zotero unhappy, adding a default
|
||||
newItem.creators.push({lastName:j ? j : "Author Not Provided", creatorType:"judge", fieldMode:true});
|
||||
}
|
||||
|
||||
// group meta tags
|
||||
var tags = ZU.xpath(doc, '//meta[contains(@name,"GROUP")]/@content');
|
||||
for (var i in tags) {
|
||||
var value =tags[i].textContent;
|
||||
newItem.tags.push(value);
|
||||
}
|
||||
|
||||
// parse year out of decision date
|
||||
var decdateField = ZU.xpathText(doc, '//meta[contains(@name,"DECDATE")]/@content');
|
||||
if (decdateField ) {
|
||||
var decisionYearRegex = /(\w+)\s+(\d+),\s+(\d+)/
|
||||
var decisionDateMatch = decisionYearRegex.exec(decdateField);
|
||||
var dy;
|
||||
var dm;
|
||||
var dd;
|
||||
if (decisionDateMatch ) {
|
||||
dm = decisionDateMatch[1];
|
||||
dd = decisionDateMatch[2];
|
||||
dy = decisionDateMatch [3];
|
||||
caselawDecisionYear = dy;
|
||||
newItem.dateDecided = dy + " " + dm + " " + dd;
|
||||
}
|
||||
}
|
||||
|
||||
// create attachment to pdf
|
||||
var dyRegex = /^(.+)\/html\/(.+)(\.Z\w+)\.html$/;
|
||||
var dyMatch = dyRegex.exec(newItem.url);
|
||||
if (dyMatch) {
|
||||
var pdfUrl = dyMatch[1]+"/pdf/"+dyMatch[2]+"P"+dyMatch[3];
|
||||
newItem.attachments.push({url:pdfUrl, title:"PDF version", mimeType:"application/pdf", downloadable:true});
|
||||
}
|
||||
|
||||
// parse disposition
|
||||
var dis = doc.getElementsByTagName("DISPOSITION");
|
||||
if (dis.length > 0) {
|
||||
var tmpDis = dis[0].innerHTML;
|
||||
tmpDis = tmpDis.replace(/\s+/g, " ");
|
||||
newItem.title = newItem.title + " (" + tmpDis + ")";
|
||||
newItem.caseName= newItem.caseName + " (" + tmpDis + ")";
|
||||
}
|
||||
|
||||
// parse citation into parts so that bluebook can be constructed
|
||||
var cite = doc.getElementsByTagName("CASENUMBER");
|
||||
if (cite.length > 0) {
|
||||
var citeRegex = /([0-9]+)\s+U\.S\.\s+([0-9]+)/;
|
||||
var citeMatch = citeRegex.exec(cite[0].innerHTML);
|
||||
if (citeMatch) {
|
||||
caselawSourceVolume = citeMatch[1];
|
||||
newItem.reporterVolume = citeMatch[1];
|
||||
caselawSourceStartPage = citeMatch[2];
|
||||
newItem.firstPage = citeMatch[2];
|
||||
}
|
||||
}
|
||||
|
||||
// look for offcite span element
|
||||
var spanTags = doc.getElementsByTagName("span");
|
||||
if (spanTags.length > 0) {
|
||||
for (var i=0; i<spanTags.length; i++) {
|
||||
if (spanTags[i].className == "offcite") {
|
||||
var citeRegex = /([0-9]+)\s+U\.S\.\s+([0-9]+)/;
|
||||
var citeMatch = citeRegex.exec(spanTags[i].innerHTML);
|
||||
if (citeMatch) {
|
||||
caselawSourceVolume = citeMatch[1];
|
||||
newItem.reporterVolume = citeMatch[1];
|
||||
caselawSourceStartPage = citeMatch[2];
|
||||
newItem.firstPage = citeMatch[2];
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// bluebook citation
|
||||
var bbCite = newItem.shortTitle + ", " +
|
||||
caselawSourceVolume + " " +
|
||||
caselawSourceReporter + " " +
|
||||
caselawSourceStartPage;
|
||||
// paralell cite
|
||||
if (caselawParallelSourceVolume != "___") {
|
||||
bbCite = bbCite + ", " + caselawParallelSourceVolume +
|
||||
" " + caselawParallelSourceReporter + " " +
|
||||
caselawParallelSourceStartPage;
|
||||
}
|
||||
// jurisdiction and year
|
||||
bbCite = bbCite + " (" + caselawDecisionYear + ")";
|
||||
// closing period
|
||||
bbCite = "Bluebook citation: " + bbCite + ".";
|
||||
newItem.notes.push({note:bbCite});
|
||||
|
||||
// parse out publication notice
|
||||
var notice = doc.getElementsByTagName("NOTICE");
|
||||
if (notice .length > 0) {
|
||||
var tmpNotice= notice [0].innerHTML;
|
||||
tmpNotice= tmpNotice.replace(/\s+/g, " ");
|
||||
newItem.notes.push({note:tmpNotice});
|
||||
}
|
||||
|
||||
newItem.complete();
|
||||
}
|
||||
|
||||
function doWeb(doc, url) {
|
||||
//sample search result URL:
|
||||
//http://www.law.cornell.edu/supct/search/display.html?terms=citizens&url=/supct/html/94-1340.ZS.html
|
||||
var liiRegexp = /\/supct\/html\/.+/
|
||||
if (liiRegexp.test(url)) {
|
||||
scrape(doc, url);
|
||||
} else {
|
||||
|
||||
var items = Zotero.Utilities.getItemArray(doc, doc, liiRegexp);
|
||||
var urls = new Array();
|
||||
Zotero.selectItems(items, function (items) {
|
||||
if (!items) {
|
||||
return true;
|
||||
}
|
||||
for (var i in items) {
|
||||
urls.push(i);
|
||||
}
|
||||
Zotero.Utilities.processDocuments(urls, scrape, function () {});
|
||||
});
|
||||
}
|
||||
|
||||
}/** BEGIN TEST CASES **/
|
||||
var testCases = [
|
||||
{
|
||||
"type": "web",
|
||||
"url": "http://www.law.cornell.edu/supct/html/01-618.ZD1.html",
|
||||
"items": [
|
||||
{
|
||||
"itemType": "case",
|
||||
"creators": [
|
||||
{
|
||||
"lastName": "Breyer",
|
||||
"creatorType": "judge",
|
||||
"fieldMode": true
|
||||
}
|
||||
],
|
||||
"notes": [
|
||||
{
|
||||
"note": "Bluebook citation: Eldred v. Ashcroft, 537 U.S. 186 (2003)."
|
||||
}
|
||||
],
|
||||
"tags": [],
|
||||
"seeAlso": [],
|
||||
"attachments": [
|
||||
{
|
||||
"title": "PDF version",
|
||||
"mimeType": "application/pdf",
|
||||
"downloadable": true
|
||||
}
|
||||
],
|
||||
"url": "http://www.law.cornell.edu/supct/html/01-618.ZD1.html",
|
||||
"language": "en-us",
|
||||
"court": "U.S. Supreme Court",
|
||||
"reporter": "U.S.",
|
||||
"title": "Eldred v. Ashcroft (Breyer, J., dissenting)",
|
||||
"caseName": "Eldred v. Ashcroft (Breyer, J., dissenting)",
|
||||
"shortTitle": "Eldred v. Ashcroft",
|
||||
"history": "ON WRIT OF CERTIORARI TO THE UNITED STATES COURT OF APPEALS FOR THE DISTRICT OF COLUMBIA CIRCUIT",
|
||||
"dateDecided": "2003 January 15",
|
||||
"reporterVolume": "537",
|
||||
"firstPage": "186",
|
||||
"libraryCatalog": "Cornell LII",
|
||||
"accessDate": "CURRENT_TIMESTAMP"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "web",
|
||||
"url": "http://www.law.cornell.edu/supct/search/index.html?query=animals&scope=onlysyllabi",
|
||||
"items": "multiple"
|
||||
}
|
||||
]
|
||||
/** END TEST CASES **/
|
||||
Reference in New Issue
Block a user