commit translators as separate files, combine CiteBase translators, and modify SPIE translator
This commit is contained in:
parent
6a3c62c23c
commit
032e0439a1
264 changed files with 36688 additions and 0 deletions
112
translators/CanLII.js
Normal file
112
translators/CanLII.js
Normal file
|
@ -0,0 +1,112 @@
|
|||
{
|
||||
"translatorID":"84799379-7bc5-4e55-9817-baf297d129fe",
|
||||
"translatorType":4,
|
||||
"label":"CanLII",
|
||||
"creator":"Bill McKinney",
|
||||
"target":"http:\\/\\/www\\.canlii\\.org\\/en\\/[^\\/]+\\/[^\\/]+\\/doc\\/.+",
|
||||
"minVersion":"1.0.0b4.r1",
|
||||
"maxVersion":"",
|
||||
"priority":100,
|
||||
"inRepository":true,
|
||||
"lastUpdated":"2007-06-18 18:15:00"
|
||||
}
|
||||
|
||||
function detectWeb(doc, url) {
|
||||
var namespace = doc.documentElement.namespaceURI;
|
||||
var nsResolver = namespace ? function(prefix) {
|
||||
if (prefix == 'x') return namespace; else return null;
|
||||
} : null;
|
||||
|
||||
var canLiiRegexp = /http:\/\/www\.canlii\.org\/en\/[^\/]+\/[^\/]+\/doc\/.+/
|
||||
if(canLiiRegexp .test(url)) {
|
||||
return "book";
|
||||
} else {
|
||||
var aTags = doc.getElementsByTagName("a");
|
||||
for(var i=0; i<aTags.length; i++) {
|
||||
if(articleRegexp.test(aTags[i].href)) {
|
||||
return "multiple";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function associateMeta(newItem, metaTags, field, zoteroField) {
|
||||
var field = metaTags.namedItem(field);
|
||||
if(field) {
|
||||
newItem[zoteroField] = field.getAttribute("content");
|
||||
}
|
||||
}
|
||||
|
||||
function scrape(doc) {
|
||||
|
||||
var namespace = doc.documentElement.namespaceURI;
|
||||
var nsResolver = namespace ? function(prefix) {
|
||||
if (prefix == 'x') return namespace; else return null;
|
||||
} : null;
|
||||
|
||||
var newItem = new Zotero.Item("case");
|
||||
|
||||
var metaTags = doc.getElementsByTagName("meta");
|
||||
associateMeta(newItem, metaTags, "DC.Title", "title");
|
||||
associateMeta(newItem, metaTags, "DC.Date", "dateDecided");
|
||||
associateMeta(newItem, metaTags, "DC.Language", "language");
|
||||
newItem.url = doc.location.href;
|
||||
|
||||
var field = metaTags.namedItem("DC.Title");
|
||||
var tmpText = "";
|
||||
if(field) {
|
||||
tmpText = field.getAttribute("content");
|
||||
var capRe = /^(.+),\s+(\d{4})\s+(\w+)\s+(\d+)\s+\(([^\)]+)\)/;
|
||||
var m = capRe.exec(tmpText);
|
||||
if(m) {
|
||||
|
||||
newItem.caseName = m[1]+", "+m[2]+" "+m[3]+" "+m[4];
|
||||
if (m[3] == 'CanLII') {
|
||||
newItem.court = m[5];
|
||||
} else {
|
||||
newItem.court = m[3];
|
||||
}
|
||||
|
||||
} else {
|
||||
newItem.caseName = tmpText;
|
||||
newItem.court = "not found";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// attach link to pdf version
|
||||
// NOTE: not working - don't know why
|
||||
var pdfRe = /^(.+)\.html$/;
|
||||
var pdfMatch = pdfRe.exec(doc.location.href);
|
||||
if (pdfMatch) {
|
||||
var pdfUrl = pdfMatch[1]+".pdf";
|
||||
newItem.attachments = [{url:pdfUrl, title:"PDF version", mimeType:"application/pdf"}];
|
||||
}
|
||||
|
||||
newItem.complete();
|
||||
}
|
||||
|
||||
function doWeb(doc, url) {
|
||||
var canLiiRegexp= /http:\/\/www\.canlii\.org\/en\/[^\/]+\/[^\/]+\/doc\/.+/
|
||||
if(canLiiRegexp.test(url)) {
|
||||
scrape(doc);
|
||||
} else {
|
||||
|
||||
var items = Zotero.Utilities.getItemArray(doc, doc, canLiiRegexp);
|
||||
items = Zotero.selectItems(items);
|
||||
|
||||
if(!items) {
|
||||
return true;
|
||||
}
|
||||
|
||||
var urls = new Array();
|
||||
for(var i in items) {
|
||||
urls.push(i);
|
||||
}
|
||||
|
||||
Zotero.Utilities.processDocuments(urls, scrape, function() { Zotero.done(); });
|
||||
Zotero.wait();
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue