123 lines
3.6 KiB
JavaScript
123 lines
3.6 KiB
JavaScript
|
{
|
|||
|
"translatorID": "8e5f8616-05d0-4d33-8554-dad76b20ecbx",
|
|||
|
"label": "Hanrei Watch RSS service",
|
|||
|
"creator": "Frank Bennett",
|
|||
|
"target": "^https?://kanz\\.jp/hanrei/detail/[0-9]+/",
|
|||
|
"minVersion": "1.0.0b3.r1",
|
|||
|
"maxVersion": "",
|
|||
|
"priority": 100,
|
|||
|
"inRepository": true,
|
|||
|
"translatorType": 4,
|
|||
|
"browserSupport": "gcsibv",
|
|||
|
"lastUpdated": "2012-01-30 22:49:15"
|
|||
|
}
|
|||
|
|
|||
|
function detectWeb(doc, url) {
|
|||
|
return "case";
|
|||
|
}
|
|||
|
|
|||
|
var years = {};
|
|||
|
years["明治"] = 1867;
|
|||
|
years["大正"] = 1911;
|
|||
|
years["昭和"] = 1925;
|
|||
|
years["平成"] = 1988;
|
|||
|
|
|||
|
function doWeb(doc, url) {
|
|||
|
var namespace = doc.documentElement.namespaceURI;
|
|||
|
var nsResolver = namespace ? function(prefix) {
|
|||
|
if (prefix == 'x') return namespace; else return null;
|
|||
|
} : null;
|
|||
|
|
|||
|
var item = new Zotero.Item("case");
|
|||
|
|
|||
|
//
|
|||
|
// For values that require no special post-processing, get Xpath targets in raw list form.
|
|||
|
// Values to be extracted are for docket number, case nickname, court, and the abstract
|
|||
|
// of the judgment.
|
|||
|
//
|
|||
|
var values = [];
|
|||
|
values.push( doc.evaluate( '//table[@class="detail"]//th[contains(text(),"事件番号")]/following-sibling::td[position()=1]', doc, null, XPathResult.ANY_TYPE, null) );
|
|||
|
values.push( doc.evaluate( '//table[@class="detail"]//th[contains(text(),"事件名")]/following-sibling::td[position()=1]', doc, null, XPathResult.ANY_TYPE, null) );
|
|||
|
values.push( doc.evaluate( '//table[@class="detail"]//th[contains(text(),"裁判所")]/following-sibling::td[position()=1]', doc, null, XPathResult.ANY_TYPE, null) );
|
|||
|
values.push( doc.evaluate( '//table[@class="detail"]//th[contains(text(),"裁判要旨")]/following-sibling::td[position()=1]', doc, null, XPathResult.ANY_TYPE, null) );
|
|||
|
//
|
|||
|
// For each variable above, extract its string value, if any.
|
|||
|
//
|
|||
|
for (var pos in values){
|
|||
|
values[pos] = values[pos].iterateNext();
|
|||
|
if (values[pos]){
|
|||
|
values[pos] = values[pos].textContent;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//
|
|||
|
// Get the date, and normalize the format and the year
|
|||
|
//
|
|||
|
var date = doc.evaluate( '//table[@class="detail"]//th[contains(text(),"裁判年月日")]/following-sibling::td[position()=1]', doc, null, XPathResult.ANY_TYPE, null).iterateNext();
|
|||
|
if (date){
|
|||
|
date = date.textContent;
|
|||
|
date = date.replace(/日$/,"");
|
|||
|
date = date.replace(/(月|年)/g,"-");
|
|||
|
|
|||
|
var m = date.match(/^(平成|昭和|大正|明治)([0-9]+)(.*)/);
|
|||
|
if (m && years[m[1]]){
|
|||
|
date = (years[m[1]] + parseInt(m[2],10)) + m[3];
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//
|
|||
|
// Get the URL of the PDF attachment.
|
|||
|
//
|
|||
|
var pdf = doc.evaluate( '//a[contains(text(),"PDF File")]/@href', doc, null, XPathResult.ANY_TYPE, null).iterateNext();
|
|||
|
if (pdf){
|
|||
|
pdf = pdf.textContent;
|
|||
|
}
|
|||
|
|
|||
|
//
|
|||
|
// Assemble the item and declare it complete.
|
|||
|
//
|
|||
|
item.type = "case";
|
|||
|
item.docketNumber = values[0];
|
|||
|
item.title = values[1];
|
|||
|
item.court = values[2];
|
|||
|
item.abstractNote = values[3];
|
|||
|
item.date = date;
|
|||
|
item.url = url;
|
|||
|
item.attachments.push( {
|
|||
|
url:pdf,
|
|||
|
title:"SupCt PDF",
|
|||
|
mimeType:"application/pdf"} );
|
|||
|
item.complete();
|
|||
|
}
|
|||
|
/** BEGIN TEST CASES **/
|
|||
|
var testCases = [
|
|||
|
{
|
|||
|
"type": "web",
|
|||
|
"url": "http://kanz.jp/hanrei/detail/81611/",
|
|||
|
"items": [
|
|||
|
{
|
|||
|
"itemType": "case",
|
|||
|
"creators": [],
|
|||
|
"notes": [],
|
|||
|
"tags": [],
|
|||
|
"seeAlso": [],
|
|||
|
"attachments": [
|
|||
|
{
|
|||
|
"url": "http://www.courts.go.jp/hanrei/pdf/20110912150000.pdf",
|
|||
|
"title": "SupCt PDF",
|
|||
|
"mimeType": "application/pdf"
|
|||
|
}
|
|||
|
],
|
|||
|
"type": "case",
|
|||
|
"docketNumber": "平成22(ワ)503",
|
|||
|
"title": "慰謝料請求事件",
|
|||
|
"court": "仙台地方裁判所 第1民事部",
|
|||
|
"date": "2011-8-30",
|
|||
|
"url": "http://kanz.jp/hanrei/detail/81611/",
|
|||
|
"libraryCatalog": "Hanrei Watch RSS service",
|
|||
|
"accessDate": "CURRENT_TIMESTAMP"
|
|||
|
}
|
|||
|
]
|
|||
|
}
|
|||
|
]
|
|||
|
/** END TEST CASES **/
|