Remove usage of HTTP.loadDocuments() in electron shared code

This commit is contained in:
Adomas Venčkauskas 2018-08-16 11:39:50 +03:00
parent 850d2d2977
commit 2cf940763f
3 changed files with 36 additions and 57 deletions

View file

@ -798,47 +798,33 @@ Zotero.Server.Connector.SaveSnapshot.prototype = {
return item; return item;
} }
return new Zotero.Promise((resolve, reject) => { var parser = Components.classes["@mozilla.org/xmlextras/domparser;1"]
Zotero.Server.Connector.Data[data.url] = "<html>" + data.html + "</html>"; .createInstance(Components.interfaces.nsIDOMParser);
Zotero.HTTP.loadDocuments( var doc = parser.parseFromString(`<html>${data.html}</html>`, 'text/html');
["zotero://connector/" + encodeURIComponent(data.url)], doc = Zotero.HTTP.wrapDocument(doc, data.url);
async function (doc) {
delete Zotero.Server.Connector.Data[data.url]; // Create new webpage item
let item = new Zotero.Item("webpage");
try { item.libraryID = libraryID;
// Create new webpage item item.setField("title", doc.title);
let item = new Zotero.Item("webpage"); item.setField("url", data.url);
item.libraryID = libraryID; item.setField("accessDate", "CURRENT_TIMESTAMP");
item.setField("title", doc.title); if (collection) {
item.setField("url", data.url); item.setCollections([collection.id]);
item.setField("accessDate", "CURRENT_TIMESTAMP"); }
if (collection) { var itemID = await item.saveTx();
item.setCollections([collection.id]);
} // Save snapshot
var itemID = await item.saveTx(); if (library.filesEditable && !data.skipSnapshot) {
await Zotero.Attachments.importFromDocument({
// Save snapshot document: doc,
if (library.filesEditable && !data.skipSnapshot) { parentItemID: itemID
await Zotero.Attachments.importFromDocument({ });
document: doc, }
parentItemID: itemID
}); return item;
}
resolve(item);
}
catch (e) {
reject(e);
}
},
null,
null,
false,
cookieSandbox
);
});
} }
} };
/** /**
* Handle item selection * Handle item selection

View file

@ -215,7 +215,7 @@ Zotero.FeedItem.prototype.translate = Zotero.Promise.coroutine(function* (librar
} }
let deferred = Zotero.Promise.defer(); let deferred = Zotero.Promise.defer();
let error = function(e) { Zotero.debug(e, 1); deferred.reject(e); }; let error = function(e) { };
let translate = new Zotero.Translate.Web(); let translate = new Zotero.Translate.Web();
var win = Services.wm.getMostRecentWindow("navigator:browser"); var win = Services.wm.getMostRecentWindow("navigator:browser");
let progressWindow = win.ZoteroPane.progressWindow; let progressWindow = win.ZoteroPane.progressWindow;
@ -234,13 +234,12 @@ Zotero.FeedItem.prototype.translate = Zotero.Promise.coroutine(function* (librar
} }
// Load document // Load document
let hiddenBrowser = Zotero.HTTP.loadDocuments( try {
this.getField('url'), yield Zotero.HTTP.processDocuments(this.getField('url'), doc => deferred.resolve(doc));
doc => deferred.resolve(doc), } catch (e) {
() => {}, Zotero.debug(e, 1);
error, deferred.reject(e);
true }
);
let doc = yield deferred.promise; let doc = yield deferred.promise;
// Set translate document // Set translate document
@ -266,7 +265,6 @@ Zotero.FeedItem.prototype.translate = Zotero.Promise.coroutine(function* (librar
if (libraryID) { if (libraryID) {
let result = yield translate.translate({libraryID, collections: collectionID ? [collectionID] : false}) let result = yield translate.translate({libraryID, collections: collectionID ? [collectionID] : false})
.then(items => items ? items[0] : false); .then(items => items ? items[0] : false);
Zotero.Browser.deleteHiddenBrowser(hiddenBrowser);
if (!result) { if (!result) {
let item = yield this.clone(libraryID, collectionID, doc); let item = yield this.clone(libraryID, collectionID, doc);
progressWindow.Translation.itemDoneHandler()(null, null, item); progressWindow.Translation.itemDoneHandler()(null, null, item);
@ -285,7 +283,6 @@ Zotero.FeedItem.prototype.translate = Zotero.Promise.coroutine(function* (librar
translate.translate({libraryID: false, saveAttachments: false}); translate.translate({libraryID: false, saveAttachments: false});
let itemData = yield deferred.promise; let itemData = yield deferred.promise;
Zotero.Browser.deleteHiddenBrowser(hiddenBrowser);
// clean itemData // clean itemData
const deleteFields = ['attachments', 'notes', 'id', 'itemID', 'path', 'seeAlso', 'version', 'dateAdded', 'dateModified']; const deleteFields = ['attachments', 'notes', 'id', 'itemID', 'path', 'seeAlso', 'version', 'dateAdded', 'dateModified'];

View file

@ -3979,10 +3979,6 @@ var ZoteroPane = new function()
* @return {Zotero.Item|false} - The saved item, or false if item can't be saved * @return {Zotero.Item|false} - The saved item, or false if item can't be saved
*/ */
this.addItemFromURL = Zotero.Promise.coroutine(function* (url, itemType, saveSnapshot, row) { this.addItemFromURL = Zotero.Promise.coroutine(function* (url, itemType, saveSnapshot, row) {
if (window.content && url == window.content.document.location.href) {
return this.addItemFromPage(itemType, saveSnapshot, row);
}
url = Zotero.Utilities.resolveIntermediateURL(url); url = Zotero.Utilities.resolveIntermediateURL(url);
let [mimeType, hasNativeHandler] = yield Zotero.MIME.getMIMETypeFromURL(url); let [mimeType, hasNativeHandler] = yield Zotero.MIME.getMIMETypeFromURL(url);
@ -3997,12 +3993,12 @@ var ZoteroPane = new function()
deferred.resolve(item) deferred.resolve(item)
}); });
}; };
var done = function () {} try {
var exception = function (e) { yield Zotero.HTTP.processDocuments([url], processor);
} catch (e) {
Zotero.debug(e, 1); Zotero.debug(e, 1);
deferred.reject(e); deferred.reject(e);
} }
Zotero.HTTP.loadDocuments([url], processor, done, exception);
return deferred.promise; return deferred.promise;
} }