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 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
|
||||||
|
|
|
@ -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'];
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue