Initial Commit
This commit is contained in:
190
translators/Verniana-Jules Verne Studies.js
Normal file
190
translators/Verniana-Jules Verne Studies.js
Normal file
@@ -0,0 +1,190 @@
|
||||
{
|
||||
"translatorID": "cdf8269c-86b9-4039-9bc4-9d998c67740e",
|
||||
"label": "Verniana-Jules Verne Studies",
|
||||
"creator": "Aurimas Vinckevicius, Emiliano Heyns",
|
||||
"target": "^https?://[^/]*verniana\\.org(:\\d+)?/volumes/\\d+/",
|
||||
"minVersion": "2.1.9",
|
||||
"maxVersion": "",
|
||||
"priority": 100,
|
||||
"inRepository": true,
|
||||
"translatorType": 4,
|
||||
"browserSupport": "gcsibv",
|
||||
"lastUpdated": "2019-06-17 13:39:01"
|
||||
}
|
||||
|
||||
/**
|
||||
Copyright (c) 2012-2019 Aurimas Vinckevicius, Emiliano Heyns
|
||||
|
||||
This program 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.
|
||||
|
||||
This program 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 this program. If not, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
// 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;}
|
||||
|
||||
function detectWeb(doc, _url) {
|
||||
if (doc.querySelector('ul.volume_toc li')) return 'multiple';
|
||||
if (doc.querySelector('.ref_on_top')) return 'journalArticle';
|
||||
return false;
|
||||
}
|
||||
|
||||
function returnMatch(t, r) {
|
||||
let m = t.match(r);
|
||||
return m ? m[1] : '';
|
||||
}
|
||||
|
||||
function scrape(doc, url) {
|
||||
let item = new Zotero.Item('journalArticle');
|
||||
item.url = url;
|
||||
item.title = ZU.capitalizeTitle(ZU.trimInternal(text(doc, '#content h1') || ''));
|
||||
|
||||
item.creators = (text(doc, 'div#content p.author a') || text(doc, 'div#content p.author')).split(' et ').map(author => ZU.cleanAuthor(author.trim(), 'author'));
|
||||
item.abstractNote = text(doc, 'p.abstract');
|
||||
|
||||
let refOnTop = (text(doc, 'div.ref_on_top') || '').trim();
|
||||
item.volume = returnMatch(refOnTop, /volume (\d+)/i);
|
||||
item.pages = returnMatch(refOnTop, /(\d+(?:–\d+)?)$/);
|
||||
|
||||
item.ISSN = '1565-8872';
|
||||
|
||||
item.attachments = [];
|
||||
let m = url.match(/^(https?:\/\/www\.verniana\.org\/volumes\/[0-9]+\/)[^/]+(\/[^.]+)\.html$/);
|
||||
if (m) {
|
||||
item.attachments = [
|
||||
{
|
||||
url: m[1] + 'A4' + m[2] + '.pdf',
|
||||
title: 'Full text PDF',
|
||||
mimeType: 'application/pdf'
|
||||
},
|
||||
{
|
||||
url: m[1] + 'HTML' + m[2] + '.html',
|
||||
title: 'Snapshot',
|
||||
mimeType: 'text/html'
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
item.complete();
|
||||
}
|
||||
|
||||
function doWeb(doc, url) {
|
||||
if (detectWeb(doc, url) === 'multiple') {
|
||||
let items = {};
|
||||
for (let item of doc.querySelectorAll('ul.volume_toc li')) {
|
||||
let title = text(item, '.title');
|
||||
if (!title) continue;
|
||||
|
||||
let a = Array.from(item.querySelectorAll('a')).find(a => a.textContent === 'HTML');
|
||||
if (!a) continue;
|
||||
|
||||
let href = a.getAttribute('href');
|
||||
if (href) items[href] = title;
|
||||
}
|
||||
|
||||
Zotero.selectItems(items, function (items) {
|
||||
ZU.processDocuments(Object.keys(items), scrape);
|
||||
});
|
||||
}
|
||||
else {
|
||||
scrape(doc, url);
|
||||
}
|
||||
}
|
||||
|
||||
/** BEGIN TEST CASES **/
|
||||
var testCases = [
|
||||
{
|
||||
"type": "web",
|
||||
"url": "http://www.verniana.org/volumes/04/index.en.html",
|
||||
"items": "multiple"
|
||||
},
|
||||
{
|
||||
"type": "web",
|
||||
"url": "http://www.verniana.org/volumes/07/Resumes/AlcideMorgaz.html",
|
||||
"items": [
|
||||
{
|
||||
"itemType": "journalArticle",
|
||||
"title": "Alcide Poitrineux et Simon Morgaz: deux mises au point sur Jules Verne et le théâtre",
|
||||
"creators": [
|
||||
{
|
||||
"firstName": "Stefan",
|
||||
"lastName": "Schmidt",
|
||||
"creatorType": "author"
|
||||
},
|
||||
{
|
||||
"firstName": "Volker",
|
||||
"lastName": "Dehs",
|
||||
"creatorType": "author"
|
||||
}
|
||||
],
|
||||
"ISSN": "1565-8872",
|
||||
"abstractNote": "Jules Verne a collaboré en 1883 à une pièce qui ne fut jamais jouée, Les Erreurs d'Alcide. De récentes découvertes apportent plus de\nprécisions sur cette collaboration. Dans Famille-sans-nom, le nom de famille des héros est Morgaz. Quelques années après la parution du roman, une pièce\nintitulée Simon Morgaz fut jouée en 1896.",
|
||||
"libraryCatalog": "Verniana-Jules Verne Studies",
|
||||
"pages": "97–104",
|
||||
"url": "http://www.verniana.org/volumes/07/Resumes/AlcideMorgaz.html",
|
||||
"volume": "7",
|
||||
"shortTitle": "Alcide Poitrineux et Simon Morgaz",
|
||||
"attachments": [
|
||||
{
|
||||
"title": "Full text PDF",
|
||||
"mimeType": "application/pdf"
|
||||
},
|
||||
{
|
||||
"title": "Snapshot",
|
||||
"mimeType": "text/html"
|
||||
}
|
||||
],
|
||||
"tags": [],
|
||||
"notes": [],
|
||||
"seeAlso": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "web",
|
||||
"url": "http://www.verniana.org/volumes/03/Abstracts/Garmt.html",
|
||||
"items": [
|
||||
{
|
||||
"itemType": "journalArticle",
|
||||
"title": "Sur la trace des “kritiskshalhen” du professeur Friedrich",
|
||||
"creators": [
|
||||
{
|
||||
"firstName": "Garmt de",
|
||||
"lastName": "Vries-Uiterweerd",
|
||||
"creatorType": "author"
|
||||
}
|
||||
],
|
||||
"ISSN": "1565-8872",
|
||||
"abstractNote": "The \"ultra X rays of professor Friedrich of Elbing\" that Jules Verne mentions in Le Testament d’un excentrique do not come from the\nauthor's imagination. The trace of their discovery can be followed from a meeting of the Vienna Academy of Science to an article in the Revue scientifique, which Jules\nVerne used to read.",
|
||||
"libraryCatalog": "Verniana-Jules Verne Studies",
|
||||
"pages": "125–130",
|
||||
"url": "http://www.verniana.org/volumes/03/Abstracts/Garmt.html",
|
||||
"volume": "3",
|
||||
"attachments": [
|
||||
{
|
||||
"title": "Full text PDF",
|
||||
"mimeType": "application/pdf"
|
||||
},
|
||||
{
|
||||
"title": "Snapshot",
|
||||
"mimeType": "text/html"
|
||||
}
|
||||
],
|
||||
"tags": [],
|
||||
"notes": [],
|
||||
"seeAlso": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
/** END TEST CASES **/
|
||||
Reference in New Issue
Block a user