Remove usage of HTTP.loadDocuments() in electron shared code
This commit is contained in:
parent
850d2d2977
commit
2cf940763f
3 changed files with 36 additions and 57 deletions
|
@ -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
|
||||
|
|
|
@ -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'];
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue