Permalink
Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign up
translators/Gemeinsamer Bibliotheksverbund ISBN.js
Find file
Copy path
Fetching contributors…
Cannot retrieve contributors at this time
{ | |
"translatorID": "de0eef58-cb39-4410-ada0-6b39f43383f9", | |
"label": "Gemeinsamer Bibliotheksverbund ISBN", | |
"creator": "Philipp Zumstein", | |
"target": "", | |
"minVersion": "4.0", | |
"maxVersion": "", | |
"priority": 99, | |
"inRepository": true, | |
"translatorType": 8, | |
"browserSupport": "gcsibv", | |
"lastUpdated": "2018-04-13 13:41:00" | |
} | |
/* | |
***** BEGIN LICENSE BLOCK ***** | |
Copyright © 2015 Philipp Zumstein | |
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 ***** | |
*/ | |
function detectSearch(item) { | |
return !!item.ISBN; | |
} | |
function doSearch(item) { | |
//search the ISBN or text over the SRU of the GBV, and take the result it as MARCXML | |
//documentation: https://www.gbv.de/wikis/cls/SRU | |
let url; | |
if (item.ISBN) { | |
var queryISBN = ZU.cleanISBN(item.ISBN); | |
url = "http://sru.gbv.de/gvk?version=1.1&operation=searchRetrieve&query=pica.isb=" + queryISBN + " AND pica.mat%3DB&maximumRecords=1"; | |
} | |
else if (item.query) { | |
url = "http://sru.gbv.de/gvk?version=1.1&operation=searchRetrieve&query=" + encodeURIComponent(item.query) + "&maximumRecords=50"; | |
} | |
//Z.debug(url); | |
ZU.doGet(url, function (text) { | |
//Z.debug(text); | |
var translator = Zotero.loadTranslator("import"); | |
translator.setTranslator("edd87d07-9194-42f8-b2ad-997c4c7deefd"); | |
translator.setString(text); | |
translator.setHandler("itemDone", function (obj, item) { | |
// Table of Contents = Inhaltsverzeichnis | |
/* e.g. | |
<datafield tag="856" ind1="4" ind2="2"> | |
<subfield code="u">http://d-nb.info/1054452857/04</subfield> | |
<subfield code="m">DE-101</subfield> | |
<subfield code="3">Inhaltsverzeichnis</subfield> | |
</datafield> | |
*/ | |
var parser = new DOMParser(); | |
var xml = parser.parseFromString(text, "application/xml"); | |
var ns = { | |
"marc": "http://www.loc.gov/MARC21/slim" | |
}; | |
var tocURL = ZU.xpath(xml, '//marc:datafield[@tag="856"][ marc:subfield[text()="Inhaltsverzeichnis"] ]/marc:subfield[@code="u"]', ns); | |
if (tocURL.length) { | |
//Z.debug(tocURL[0].textContent); | |
item.attachments = [{ | |
url: tocURL[0].textContent, | |
title: "Table of Contents PDF", | |
mimeType: "application/pdf" | |
}]; | |
} | |
//delete [u.a.] from place | |
if (item.place) { | |
item.place = item.place.replace(/\[?u\.[\s\u00A0]?a\.\]?\s*$/, ''); | |
} | |
//DDC is not the callNumber in Germany | |
item.callNumber = ""; | |
//place the queried ISBN as the first ISBN in the list (dublicates will be removed later) | |
item.ISBN = queryISBN + " " + item.ISBN; | |
//delete German tags | |
item.tags = []; | |
item.complete(); | |
}); | |
translator.translate(); | |
}); | |
} | |
// Testing locally in | |
// chrome://zotero/content/tools/testTranslators/testTranslators.html | |
/** BEGIN TEST CASES **/ | |
var testCases = [ | |
{ | |
"type": "search", | |
"input": { | |
"ISBN": "9783830931492" | |
}, | |
"items": [ | |
{ | |
"itemType": "book", | |
"creators": [ | |
{ | |
"lastName": "Böttcher", | |
"firstName": "Wolfgang", | |
"creatorType": "editor" | |
}, | |
{ | |
"lastName": "DeGEval - Gesellschaft für Evaluation", | |
"creatorType": "editor", | |
"fieldMode": true | |
} | |
], | |
"notes": [ | |
{ | |
"note": "Literaturangaben" | |
} | |
], | |
"tags": [], | |
"seeAlso": [], | |
"attachments": [ | |
{ | |
"title": "Table of Contents PDF", | |
"mimeType": "application/pdf" | |
} | |
], | |
"libraryCatalog": "Gemeinsamer Bibliotheksverbund ISBN", | |
"place": "Münster", | |
"ISBN": "9783830931492", | |
"title": "Evaluation in Deutschland und Österreich: Stand und Entwicklungsperspektiven in den Arbeitsfeldern der DeGEval - Gesellschaft für Evaluation", | |
"publisher": "Waxmann", | |
"date": "2014", | |
"numPages": "219", | |
"language": "ger", | |
"shortTitle": "Evaluation in Deutschland und Österreich", | |
"extra": "OCLC: 885612607" | |
} | |
] | |
}, | |
{ | |
"type": "search", | |
"input": { | |
"ISBN": "3-86688-240-8" | |
}, | |
"items": [ | |
{ | |
"itemType": "book", | |
"creators": [ | |
{ | |
"firstName": "Katrin Bente", | |
"lastName": "Karl", | |
"creatorType": "author" | |
} | |
], | |
"notes": [ | |
{ | |
"note": "Literaturverz. S. [373] - 387 Die CD-ROM enth. einen Anh. mit Dokumenten zur Sprachproduktion und Sprachbewertung" | |
}, | |
{ | |
"note": "Teilw. zugl.: Hamburg, Univ., FB SLM, Diss., 2011 u.d.T.: Karl, Katrin Bente: Nicht materieller lexikalischer Transfer als Folge der aktuellen russisch-deutschen Zweisprachigkeit" | |
} | |
], | |
"tags": [], | |
"seeAlso": [], | |
"attachments": [ | |
{ | |
"title": "Table of Contents PDF", | |
"mimeType": "application/pdf" | |
} | |
], | |
"ISBN": "9783866882409 9783866882416", | |
"language": "ger", | |
"place": "München", | |
"numPages": "387", | |
"series": "Slavolinguistica", | |
"seriesNumber": "15", | |
"libraryCatalog": "Gemeinsamer Bibliotheksverbund ISBN", | |
"shortTitle": "Bilinguale Lexik", | |
"title": "Bilinguale Lexik: nicht materieller lexikalischer Transfer als Folge der aktuellen russisch-deutschen Zweisprachigkeit", | |
"publisher": "Sagner", | |
"date": "2012", | |
"extra": "OCLC: 795769702" | |
} | |
] | |
}, | |
{ | |
"type": "search", | |
"input": { | |
"ISBN": "978-1-4073-0412-0" | |
}, | |
"items": [ | |
{ | |
"itemType": "book", | |
"title": "The harbour of Sebastos (Caesarea Maritima) in its Roman Mediterranean context", | |
"creators": [ | |
{ | |
"firstName": "Avnēr", | |
"lastName": "Rabbān", | |
"creatorType": "author" | |
}, | |
{ | |
"firstName": "Michal", | |
"lastName": "Artzy", | |
"creatorType": "author" | |
} | |
], | |
"notes": [], | |
"tags": [], | |
"seeAlso": [], | |
"attachments": [ | |
{ | |
"title": "Table of Contents PDF", | |
"mimeType": "application/pdf" | |
} | |
], | |
"ISBN": "9781407304120", | |
"language": "eng", | |
"place": "Oxford", | |
"numPages": "222", | |
"series": "BAR International series", | |
"seriesNumber": "1930", | |
"libraryCatalog": "Gemeinsamer Bibliotheksverbund ISBN", | |
"publisher": "Archaeopress" , | |
"date": "2009", | |
"extra": "OCLC: 320755805" | |
} | |
] | |
}, | |
{ | |
"type": "search", | |
"input": { | |
"ISBN": "978-1-4912-5316-8" | |
}, | |
"items": [ | |
{ | |
"itemType": "book", | |
"title": "Classroom activities for the busy teacher: EV3: A 10 week plan for teaching robotics using the LEGO Education EV3 Core Set (45544)", | |
"creators": [ | |
{ | |
"firstName": "Damien", | |
"lastName": "Kee", | |
"creatorType": "editor" | |
} | |
], | |
"notes": [ | |
{ | |
"note": "Place of publication information from back of book. Publisher information provided by Amazon" | |
} | |
], | |
"tags": [], | |
"seeAlso": [], | |
"attachments": [], | |
"ISBN": "978-1-4912-5316-8", | |
"language": "eng", | |
"abstractNote": "Introduction -- RileyRover basics -- Keeping track -- What is a robot? -- Flowcharting -- How far? -- How fast? -- That bot has personality! -- How many sides? -- Help, I'm stuck! -- Let's go prospecting! -- Stay away from the edge -- Prospecting and staying safe -- Going up and going down -- Cargo delivery -- Prepare the landing zone -- Meet your adoring public! -- As seen on TV! -- Mini-golf -- Dancing robots -- Robot wave -- Robot butler -- Student worksheets -- Building instructions. - \"A guide for teachers implementing a robotics unit in the classroom ... aimed at middle years schooling (ages 9-15) ... [and] based around a single robot, the RileyRover\"--page 1", | |
"place": "Lexington, KY", | |
"numPages": "93", | |
"libraryCatalog": "Gemeinsamer Bibliotheksverbund ISBN", | |
"publisher": "CreateSpace" , | |
"date": "2013", | |
"extra": "OCLC: 860902984" | |
} | |
] | |
} | |
] | |
/** END TEST CASES **/ |