Improve handling of corrupt translator data, and add support for III proxies

This commit is contained in:
Simon Kornblith 2012-11-11 17:58:18 -05:00
parent bd367dcd85
commit d64379290c

View file

@ -57,7 +57,8 @@ Zotero.Translators = new function() {
_initialized = true; _initialized = true;
// Build caches // Build caches
for(var i in translators) { for(var i=0; i<translators.length; i++) {
try {
var translator = new Zotero.Translator(translators[i]); var translator = new Zotero.Translator(translators[i]);
_translators[translator.translatorID] = translator; _translators[translator.translatorID] = translator;
@ -66,6 +67,12 @@ Zotero.Translators = new function() {
_cache[type].push(translator); _cache[type].push(translator);
} }
} }
} catch(e) {
Zotero.logError(e);
try {
Zotero.logError("Could not load translator "+JSON.stringify(translators[i]));
} catch(e) {}
}
} }
// Sort by priority // Sort by priority
@ -268,7 +275,6 @@ Zotero.Translators = new function() {
// check whether newTranslator is actually newer than the existing // check whether newTranslator is actually newer than the existing
// translator, and if not, don't update // translator, and if not, don't update
if(Zotero.Date.sqlToDate(newTranslator.lastUpdated) < Zotero.Date.sqlToDate(oldTranslator.lastUpdated)) { if(Zotero.Date.sqlToDate(newTranslator.lastUpdated) < Zotero.Date.sqlToDate(oldTranslator.lastUpdated)) {
Zotero.debug("Translators: Received older version of "+newTranslator.label+" from repo ("+newTranslator.lastUpdated+" vs. "+oldTranslator.lastUpdated+")");
continue; continue;
} }
@ -298,7 +304,8 @@ Zotero.Translators = new function() {
// Store // Store
if(Zotero.isChrome || Zotero.isSafari) { if(Zotero.isChrome || Zotero.isSafari) {
localStorage["translatorMetadata"] = JSON.stringify(serializedTranslators); var serialized = JSON.stringify(serializedTranslators);
Zotero.debug("Translators: Saved updated translator list ("+localStorage["translatorMetadata"].length+" characters)");
} }
// Reinitialize // Reinitialize
@ -415,7 +422,7 @@ Zotero.Translator.prototype.init = function(info) {
if(this.browserSupport.indexOf(Zotero.browser) !== -1) { if(this.browserSupport.indexOf(Zotero.browser) !== -1) {
this.runMode = Zotero.Translator.RUN_MODE_IN_BROWSER; this.runMode = Zotero.Translator.RUN_MODE_IN_BROWSER;
} else if(!Zotero.isServer) { } else {
this.runMode = Zotero.Translator.RUN_MODE_ZOTERO_STANDALONE; this.runMode = Zotero.Translator.RUN_MODE_ZOTERO_STANDALONE;
} }