Test Import Translator.js (1187B)
1 { 2 "translatorID": "619ed0f3-d8f3-4086-b1e7-f57ef35c3c43", 3 "label": "Import Zotero JSON", 4 "creator": "Simon Kornblith", 5 "target": "json", 6 "minVersion": "", 7 "maxVersion": "", 8 "priority": 1, 9 "inRepository": false, 10 "translatorType": 1, 11 "browserSupport": "g", 12 "lastUpdated": "2015-06-12 20:15:00" 13 } 14 15 var parsedData; 16 17 function parseInput() { 18 var str, json = ""; 19 20 // Read in the whole file at once, since we can't easily parse a JSON stream. The 21 // chunk size here is pretty arbitrary, although larger chunk sizes may be marginally 22 // faster. We set it to 1MB. 23 while((str = Z.read(1048576)) !== false) json += str; 24 25 try { 26 parsedData = JSON.parse(json); 27 } catch(e) { 28 Zotero.debug(e); 29 } 30 } 31 32 function detectImport() { 33 parseInput(); 34 if(!parsedData) return false; 35 return typeof parsedData === "object" && parsedData["journalArticle"]; 36 } 37 38 function doImport() { 39 for(var itemType in parsedData) { 40 var item = new Z.Item(itemType); 41 for (var field in parsedData[itemType]) { 42 item[field] = parsedData[itemType][field]; 43 } 44 item.complete(); 45 } 46 }