diff options
author | Alex Yatskov <alex@foosoft.net> | 2016-10-17 20:59:54 -0700 |
---|---|---|
committer | Alex Yatskov <alex@foosoft.net> | 2016-10-17 20:59:54 -0700 |
commit | de33a19498b38dcb8254654fb94bba3b7142a153 (patch) | |
tree | 3e3afa6447cc899b4f7edae3b83384cc44a45525 /ext/bg/js/ankiweb.js | |
parent | 9d1756a2a869e880457589a28d6992f5b8868c7f (diff) |
WIP
Diffstat (limited to 'ext/bg/js/ankiweb.js')
-rw-r--r-- | ext/bg/js/ankiweb.js | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/ext/bg/js/ankiweb.js b/ext/bg/js/ankiweb.js index 17b5525e..35f4858e 100644 --- a/ext/bg/js/ankiweb.js +++ b/ext/bg/js/ankiweb.js @@ -24,7 +24,26 @@ class AnkiWeb { } addNote(note) { - return Promise.resolve(true); + return this.retrieve().then(info => { + const model = info.models.find(m => m.name === note.modelName); + if (!model) { + return Promise.reject('invalid model'); + } + + const fields = []; + for (const field of model.fields) { + fields.push(note.fields[field]); + } + + const form = new FormData(); + form.append('data', [fields, note.tags.join(' ')]); + form.append('mid', model.id); + form.append('deck', note.deckname); + + return AnkiWeb.loadAccountPage('https://ankiweb.net/edit/save', 'POST', form, this.username, this.password); + }).then(response => { + return true; + }); } canAddNotes(notes) { |