Add findNoteIds to AnkiConnect

This commit is contained in:
toasted-nutbread 2019-10-09 20:27:05 -04:00
parent c5d6b9452d
commit 97f5b7139f

View File

@ -72,9 +72,34 @@ class AnkiConnect {
} }
} }
async findNoteIds(notes) {
await this.checkVersion();
const actions = notes.map(note => ({
action: 'findNotes',
params: {
query: `deck:"${AnkiConnect.escapeQuery(note.deckName)}" ${AnkiConnect.fieldsToQuery(note.fields)}`
}
}));
return await this.ankiInvoke('multi', {actions});
}
ankiInvoke(action, params) { ankiInvoke(action, params) {
return requestJson(this.server, 'POST', {action, params, version: this.localVersion}); return requestJson(this.server, 'POST', {action, params, version: this.localVersion});
} }
static escapeQuery(text) {
return text.replace(/"/g, '');
}
static fieldsToQuery(fields) {
const fieldNames = Object.keys(fields);
if (fieldNames.length === 0) {
return '';
}
const key = fieldNames[0];
return `${key.toLowerCase()}:"${AnkiConnect.escapeQuery(fields[key])}"`;
}
} }
@ -106,4 +131,8 @@ class AnkiNull {
async guiBrowse(query) { async guiBrowse(query) {
return []; return [];
} }
async findNoteIds(notes) {
return [];
}
} }