fix: explicitly move Anki cards to correct deck after addNotes
addNotes ignores deckName in some AnkiConnect versions. Use changeDeck after note creation to ensure cards land in English::Vocabulary.
This commit is contained in:
@@ -99,6 +99,15 @@ def add_vocab_cards(vocab_list: list[dict], source_title: str = "") -> list[int]
|
||||
|
||||
created = [note_id for note_id in results if note_id is not None]
|
||||
skipped = len(results) - len(created)
|
||||
|
||||
# addNotes ignores deckName in some AnkiConnect versions — move explicitly
|
||||
if created:
|
||||
try:
|
||||
card_ids = _invoke("findCards", query=f"nid:{','.join(str(n) for n in created)}")
|
||||
_invoke("changeDeck", cards=card_ids, deck=DECK_NAME)
|
||||
except Exception as exc:
|
||||
logger.warning("changeDeck failed: %s", exc)
|
||||
|
||||
logger.info(
|
||||
"Anki: added %d card(s), skipped %d duplicate(s) for '%s'",
|
||||
len(created), skipped, source_title[:40],
|
||||
|
||||
Reference in New Issue
Block a user