It is actually possible, because Zotero Integration has an API called runImport. I have a bulk importing script, that will import the item corresponding to each citekey under a specific heading in a note.
If you can somehow make a list of all the citekeys for all items in Zotero, then the bulk importing script could import them all.
One way to do this would be to combine my citation dictionary script with the aforementioned bulk import script.
Here’s the bulk import script, which uses dataview and templater:
<%*
// Dataview API
const dv = this.app.plugins.plugins["dataview"].api;
// Path to note
const path = "01 - Inbox/Reading list";
// List heading to import (change this to match the list corresponding to items you want to import)
const heading = "📗 Ready to import"
// Dataview query
const query = `list without ID link(file.link, L.text) from "${path}" flatten file.lists as L where meta(L.section).subpath = "${heading}"`
// Running the query
let DQL = await dv.tryQuery(query);
//console.log("DQL", DQL);
// Storing the values
const itemsToImport = DQL.values;
// Regex for citekey
const citekeyRegex = /\@([^\|]+)/;
// Import every item under the heading
if (itemsToImport.length > 0) {
for (const item in itemsToImport) {
const citekey = itemsToImport[item].display.match(citekeyRegex)[1];
app.plugins.getPlugin('obsidian-zotero-desktop-connector').runImport('Literature note', citekey);
new Notice(`Imported ${citekey}`);
}
} else {
new Notice("Nothing to import");
}
%>