zotero/translators/Defense Technical Informati...

146 lines
4.3 KiB
JavaScript
Raw Normal View History

2024-08-27 21:48:20 -05:00
{
"translatorID": "99be9976-2ff9-40df-96e8-82edfa79d9f3",
"label": "Defense Technical Information Center",
"creator": "Matt Burton",
"target": "^https?://oai\\.dtic\\.mil/oai/",
"minVersion": "3.0",
"maxVersion": "",
"priority": 100,
"inRepository": true,
"translatorType": 4,
"browserSupport": "gcsibv",
"lastUpdated": "2013-01-09 15:36:32"
}
function detectWeb(doc, url) {
if (doc.title.indexOf("DTIC OAI Index for") != -1) {
return "multiple";
} else if (url.indexOf("verb=getRecord") != -1) {
return "report";
}
}
function doWeb(doc, url) {
var newURIs = new Array();
if (detectWeb(doc, url) == "multiple") {
var links = doc.evaluate("//a/@href", doc, null, XPathResult.Abstract, null);
var titles = doc.evaluate("//a/preceding::text()[1]", doc, null, XPathResult.Abstract, null);
var items = new Object();
var link, title;
while (link = links.iterateNext(), title = titles.iterateNext()) {
items[link.textContent.replace(/&metadataPrefix=html/, "&metadataPrefix=oai_dc")] = title.textContent;
}
Zotero.selectItems(items, function (items) {
if (!items) {
return true;
}
for (var url in items) {
newURIs.push(url);
}
Zotero.Utilities.processDocuments(newURIs, scrape, function () {});
});
} else {
newURIs = url.replace(/&metadataPrefix=html/, "&metadataPrefix=oai_dc");
scrape(doc, newURIs);
}
}
function scrape(doc, newURIs) {
var pdfurl = ZU.xpathText(doc, '//p/a[contains(@href, "doc=GetTRDoc.pdf")]/@href')
Zotero.Utilities.HTTP.doGet(newURIs, function (text) {
//cut down the XML to something RDF readable and add required xmlns to the header
text = text.replace(/\n/, "").replace(/.+<metadata>/, "").replace(/<\/metadata>.+/, "")
text = text.replace(/<oai_dc[^>]+>/, '<?xml version="1.0" encoding="UTF-8"?><oai_dc:dc xmlns="http://purl.org/dc/elements/1.1/" xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dc="http://purl.org/dc/elements/1.1/" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">')
//Z.debug(text)
var translator = Zotero.loadTranslator("import");
translator.setTranslator("5e3ad958-ac79-463d-812b-a86a9235c28f");
translator.setString(text);
translator.setHandler("itemDone", function (obj, item) {
item.attachments = [{
title: "DTIC Snapshot",
document: doc,
mimeType: "text/html"
}];
if (pdfurl) {
item.attachments.push({
url: pdfurl,
title: "DTIC Full Text PDF",
mimeType: "application/pdf"
});
}
item.reportType = "";
item.abstractNote = item.extra;
item.extra = "";
item.itemID = "";
item.complete();
});
translator.getTranslatorObject(function (trans) {
trans.defaultUnknownType = 'report';
trans.doImport();
});
});
}/** BEGIN TEST CASES **/
var testCases = [
{
"type": "web",
"url": "http://oai.dtic.mil/oai/oai?&verb=getRecord&metadataPrefix=html&identifier=ADA466425",
"items": [
{
"itemType": "report",
"title": "Dynamic Across-Time Measurement Interpretation: Maintaining Qualitative Understandings of Physical System Behavior",
"creators": [
{
"firstName": "Dennis M.",
"lastName": "DeCoste",
"creatorType": "author"
}
],
"date": "1990-02",
"language": "en",
"libraryCatalog": "Defense Technical Information Center",
"rights": "Approved for public release; distribution is unlimited.",
"shortTitle": "Dynamic Across-Time Measurement Interpretation",
"attachments": [
{
"title": "DTIC Snapshot",
"mimeType": "text/html"
},
{
"title": "DTIC Full Text PDF",
"mimeType": "application/pdf"
}
],
"tags": [
"*ARTIFICIAL INTELLIGENCE",
"*QUALITATIVE ANALYSIS",
"*QUALITATIVE PHYSICS",
"*QUALITATIVE REASONING",
"*SYSTEMS ANALYSIS",
"COMPLEXITY ANALYSIS",
"Cybernetics",
"DATMI(DYNAMIC ACROSS-TIME MEASUREMENT INTERPRETATION)",
"DEPENDENCY PATHS",
"DURATION CONSTRAINTS",
"ENVISIONMENTS",
"EXPLANATION",
"FAULTY DATA",
"INTERPRETATION CREDIBILITIES",
"MEASUREMENT INTERPRETATION",
"MONITORING",
"PINTERP SPACE",
"PINTERPS",
"QUALITATIVE STATES",
"SYSTEMS BEHAVIOR",
"THESES"
],
"notes": [],
"seeAlso": []
}
]
}
]
/** END TEST CASES **/