286 lines
7.7 KiB
JavaScript
286 lines
7.7 KiB
JavaScript
|
{
|
||
|
"translatorID": "84799379-7bc5-4e55-9817-baf297d129fe",
|
||
|
"label": "CanLII",
|
||
|
"creator": "Sebastian Karcher",
|
||
|
"target": "^https?://(www\\.)?canlii\\.org/(en|fr)/",
|
||
|
"minVersion": "3.0",
|
||
|
"maxVersion": "",
|
||
|
"priority": 100,
|
||
|
"inRepository": true,
|
||
|
"translatorType": 4,
|
||
|
"browserSupport": "gcsibv",
|
||
|
"lastUpdated": "2019-11-25 22:05:12"
|
||
|
}
|
||
|
|
||
|
|
||
|
/*
|
||
|
***** BEGIN LICENSE BLOCK *****
|
||
|
|
||
|
Copyright © 2012 Sebastian Karcher
|
||
|
|
||
|
This file is part of Zotero.
|
||
|
|
||
|
Zotero is free software: you can redistribute it and/or modify
|
||
|
it under the terms of the GNU Affero General Public License as published by
|
||
|
the Free Software Foundation, either version 3 of the License, or
|
||
|
(at your option) any later version.
|
||
|
|
||
|
Zotero is distributed in the hope that it will be useful,
|
||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
GNU Affero General Public License for more details.
|
||
|
|
||
|
You should have received a copy of the GNU Affero General Public License
|
||
|
along with Zotero. If not, see <http://www.gnu.org/licenses/>.
|
||
|
|
||
|
***** END LICENSE BLOCK *****
|
||
|
*/
|
||
|
|
||
|
|
||
|
// attr()/text() v2
|
||
|
// eslint-disable-next-line
|
||
|
function attr(docOrElem,selector,attr,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.getAttribute(attr):null;}function text(docOrElem,selector,index){var elem=index?docOrElem.querySelectorAll(selector).item(index):docOrElem.querySelector(selector);return elem?elem.textContent:null;}
|
||
|
|
||
|
var canLiiRegexp = /https?:\/\/(?:www\.)?canlii\.org[^/]*\/(?:en|fr)\/[^/]+\/[^/]+\/doc\/.+/;
|
||
|
|
||
|
function detectWeb(doc, url) {
|
||
|
if (canLiiRegexp.test(url)) {
|
||
|
return "case";
|
||
|
}
|
||
|
else {
|
||
|
var aTags = doc.getElementsByTagName("a");
|
||
|
for (var i = 0; i < aTags.length; i++) {
|
||
|
if (canLiiRegexp.test(aTags[i].href)) {
|
||
|
return "multiple";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
|
||
|
function scrape(doc, url) {
|
||
|
var newItem = new Zotero.Item("case");
|
||
|
var voliss = doc.getElementsByClassName('documentMeta-citation')[0].nextElementSibling;
|
||
|
voliss = ZU.trimInternal(
|
||
|
ZU.xpathText(voliss, './node()[not(self::script)]', null, '') // We technically only use ./text() parts, but this is less confusing
|
||
|
);
|
||
|
// e.g. Reference re Secession of Quebec, 1998 CanLII 793 (SCC), [1998] 2 SCR 217, <http://canlii.ca/t/1fqr3>, retrieved on 2019-11-25
|
||
|
var citationParts = voliss.split(',');
|
||
|
newItem.caseName = citationParts[0];
|
||
|
var reporterRegex = /\[\d\d\d\d\]\s+(\d+)\s+([A-Z]+)\s+(\d+)/;
|
||
|
var reporterDetails = voliss.match(reporterRegex);
|
||
|
if (reporterDetails) {
|
||
|
newItem.reporterVolume = reporterDetails[1];
|
||
|
newItem.reporter = reporterDetails[2];
|
||
|
newItem.firstPage = reporterDetails[3];
|
||
|
}
|
||
|
|
||
|
newItem.court = text('#breadcrumbs span', 2);
|
||
|
newItem.dateDecided = ZU.xpathText(doc, '//div[@id="documentMeta"]//div[contains(text(), "Date")]/following-sibling::div');
|
||
|
newItem.docketNumber = ZU.xpathText(doc, '//div[@id="documentMeta"]//div[contains(text(), "File number") or contains(text(), "Numéro de dossier")]/following-sibling::div');
|
||
|
var otherCitations = ZU.xpathText(doc, '//div[@id="documentMeta"]//div[contains(text(), "Other citations") or contains(text(), "Autres citations")]/following-sibling::div');
|
||
|
if (otherCitations) {
|
||
|
newItem.notes.push({ note: "Other Citations: " + ZU.trimInternal(otherCitations) });
|
||
|
}
|
||
|
|
||
|
var shortUrl = doc.getElementsByClassName('documentStaticUrl')[0];
|
||
|
if (shortUrl) {
|
||
|
newItem.url = shortUrl.textContent.trim();
|
||
|
}
|
||
|
|
||
|
// attach link to pdf version
|
||
|
// Z.debug(url)
|
||
|
var pdfurl = url.replace(/\.html(?:[?#].*)?/, ".pdf");
|
||
|
newItem.attachments.push({
|
||
|
url: pdfurl,
|
||
|
title: "CanLII Full Text PDF",
|
||
|
mimeType: "application/pdf"
|
||
|
});
|
||
|
newItem.attachments.push({
|
||
|
document: doc,
|
||
|
title: "CanLII Snapshot"
|
||
|
});
|
||
|
newItem.complete();
|
||
|
}
|
||
|
|
||
|
function doWeb(doc, url) {
|
||
|
if (canLiiRegexp.test(url)) {
|
||
|
scrape(doc, url);
|
||
|
}
|
||
|
else {
|
||
|
var items = ZU.getItemArray(doc, doc, canLiiRegexp);
|
||
|
Zotero.selectItems(items, function (items) {
|
||
|
if (!items) {
|
||
|
return;
|
||
|
}
|
||
|
var articles = [];
|
||
|
for (var i in items) {
|
||
|
articles.push(i);
|
||
|
}
|
||
|
ZU.processDocuments(articles, scrape);
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/** BEGIN TEST CASES **/
|
||
|
var testCases = [
|
||
|
{
|
||
|
"type": "web",
|
||
|
"url": "https://www.canlii.org/en/ca/scc/doc/2010/2010scc2/2010scc2.html",
|
||
|
"items": [
|
||
|
{
|
||
|
"itemType": "case",
|
||
|
"caseName": "MiningWatch Canada v. Canada (Fisheries and Oceans)",
|
||
|
"creators": [],
|
||
|
"dateDecided": "2010-01-21",
|
||
|
"court": "Supreme Court of Canada",
|
||
|
"docketNumber": "32797",
|
||
|
"firstPage": "6",
|
||
|
"reporter": "SCR",
|
||
|
"reporterVolume": "1",
|
||
|
"url": "http://canlii.ca/t/27jmr",
|
||
|
"attachments": [
|
||
|
{
|
||
|
"title": "CanLII Full Text PDF",
|
||
|
"mimeType": "application/pdf"
|
||
|
},
|
||
|
{
|
||
|
"title": "CanLII Snapshot"
|
||
|
}
|
||
|
],
|
||
|
"tags": [],
|
||
|
"notes": [
|
||
|
{
|
||
|
"note": "Other Citations: 397 NR 232 — [2010] SCJ No 2 (QL) — [2010] ACS no 2"
|
||
|
}
|
||
|
],
|
||
|
"seeAlso": []
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"type": "web",
|
||
|
"url": "https://www.canlii.org/en/ca/fct/doc/2011/2011fc119/2011fc119.html?searchUrlHash=AAAAAQAjU3V0dGllIHYuIENhbmFkYSAoQXR0b3JuZXkgR2VuZXJhbCkAAAAAAQ",
|
||
|
"items": [
|
||
|
{
|
||
|
"itemType": "case",
|
||
|
"caseName": "Suttie v. Canada (Attorney General)",
|
||
|
"creators": [],
|
||
|
"dateDecided": "2011-02-02",
|
||
|
"court": "Federal Court",
|
||
|
"docketNumber": "T-1089-10",
|
||
|
"url": "http://canlii.ca/t/2flrk",
|
||
|
"attachments": [
|
||
|
{
|
||
|
"title": "CanLII Full Text PDF",
|
||
|
"mimeType": "application/pdf"
|
||
|
},
|
||
|
{
|
||
|
"title": "CanLII Snapshot"
|
||
|
}
|
||
|
],
|
||
|
"tags": [],
|
||
|
"notes": [],
|
||
|
"seeAlso": []
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"type": "web",
|
||
|
"url": "https://www.canlii.org/fr/ca/csc/doc/2010/2010csc2/2010csc2.html",
|
||
|
"items": [
|
||
|
{
|
||
|
"itemType": "case",
|
||
|
"caseName": "Mines Alerte Canada c. Canada (Pêches et Océans)",
|
||
|
"creators": [],
|
||
|
"dateDecided": "2010-01-21",
|
||
|
"court": "Cour suprême du Canada",
|
||
|
"docketNumber": "32797",
|
||
|
"firstPage": "6",
|
||
|
"reporter": "RCS",
|
||
|
"reporterVolume": "1",
|
||
|
"url": "http://canlii.ca/t/27jms",
|
||
|
"attachments": [
|
||
|
{
|
||
|
"title": "CanLII Full Text PDF",
|
||
|
"mimeType": "application/pdf"
|
||
|
},
|
||
|
{
|
||
|
"title": "CanLII Snapshot"
|
||
|
}
|
||
|
],
|
||
|
"tags": [],
|
||
|
"notes": [
|
||
|
{
|
||
|
"note": "Other Citations: 397 NR 232 — [2010] SCJ No 2 (QL) — [2010] ACS no 2"
|
||
|
}
|
||
|
],
|
||
|
"seeAlso": []
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"type": "web",
|
||
|
"url": "https://www.canlii.org/fr/ca/cfpi/doc/2011/2011cf119/2011cf119.html?searchUrlHash=AAAAAQAjU3V0dGllIHYuIENhbmFkYSAoQXR0b3JuZXkgR2VuZXJhbCkAAAAAAQ",
|
||
|
"items": [
|
||
|
{
|
||
|
"itemType": "case",
|
||
|
"caseName": "Suttie c. Canada (Procureur Général)",
|
||
|
"creators": [],
|
||
|
"dateDecided": "2011-02-02",
|
||
|
"court": "Cour fédérale",
|
||
|
"docketNumber": "T-1089-10",
|
||
|
"url": "http://canlii.ca/t/fks9z",
|
||
|
"attachments": [
|
||
|
{
|
||
|
"title": "CanLII Full Text PDF",
|
||
|
"mimeType": "application/pdf"
|
||
|
},
|
||
|
{
|
||
|
"title": "CanLII Snapshot"
|
||
|
}
|
||
|
],
|
||
|
"tags": [],
|
||
|
"notes": [],
|
||
|
"seeAlso": []
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"type": "web",
|
||
|
"url": "https://www.canlii.org/en/ca/scc/doc/2010/2010scc2/2010scc2.html",
|
||
|
"items": [
|
||
|
{
|
||
|
"itemType": "case",
|
||
|
"caseName": "MiningWatch Canada v. Canada (Fisheries and Oceans)",
|
||
|
"creators": [],
|
||
|
"dateDecided": "2010-01-21",
|
||
|
"court": "Supreme Court of Canada",
|
||
|
"docketNumber": "32797",
|
||
|
"firstPage": "6",
|
||
|
"reporter": "SCR",
|
||
|
"reporterVolume": "1",
|
||
|
"url": "http://canlii.ca/t/27jmr",
|
||
|
"attachments": [
|
||
|
{
|
||
|
"title": "CanLII Full Text PDF",
|
||
|
"mimeType": "application/pdf"
|
||
|
},
|
||
|
{
|
||
|
"title": "CanLII Snapshot"
|
||
|
}
|
||
|
],
|
||
|
"tags": [],
|
||
|
"notes": [
|
||
|
{
|
||
|
"note": "Other Citations: 397 NR 232 — [2010] SCJ No 2 (QL) — [2010] ACS no 2"
|
||
|
}
|
||
|
],
|
||
|
"seeAlso": []
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
/** END TEST CASES **/
|