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

View file

@ -215,7 +215,7 @@ Zotero.FeedItem.prototype.translate = Zotero.Promise.coroutine(function* (librar
}
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();
var win = Services.wm.getMostRecentWindow("navigator:browser");
let progressWindow = win.ZoteroPane.progressWindow;
@ -234,13 +234,12 @@ Zotero.FeedItem.prototype.translate = Zotero.Promise.coroutine(function* (librar
}
// Load document
let hiddenBrowser = Zotero.HTTP.loadDocuments(
this.getField('url'),
doc => deferred.resolve(doc),
() => {},
error,
true
);
try {
yield Zotero.HTTP.processDocuments(this.getField('url'), doc => deferred.resolve(doc));
} catch (e) {
Zotero.debug(e, 1);
deferred.reject(e);
}
let doc = yield deferred.promise;
// Set translate document
@ -266,7 +265,6 @@ Zotero.FeedItem.prototype.translate = Zotero.Promise.coroutine(function* (librar
if (libraryID) {
let result = yield translate.translate({libraryID, collections: collectionID ? [collectionID] : false})
.then(items => items ? items[0] : false);
Zotero.Browser.deleteHiddenBrowser(hiddenBrowser);
if (!result) {
let item = yield this.clone(libraryID, collectionID, doc);
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});
let itemData = yield deferred.promise;
Zotero.Browser.deleteHiddenBrowser(hiddenBrowser);
// clean itemData
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
*/
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);
let [mimeType, hasNativeHandler] = yield Zotero.MIME.getMIMETypeFromURL(url);
@ -3997,12 +3993,12 @@ var ZoteroPane = new function()
deferred.resolve(item)
});
};
var done = function () {}
var exception = function (e) {
try {
yield Zotero.HTTP.processDocuments([url], processor);
} catch (e) {
Zotero.debug(e, 1);
deferred.reject(e);
}
Zotero.HTTP.loadDocuments([url], processor, done, exception);
return deferred.promise;
}