From 9739daf4813ed69214f5b4752b7efbb37bb3bbdf Mon Sep 17 00:00:00 2001 From: joungmin Date: Sat, 28 Feb 2026 08:42:29 +0900 Subject: [PATCH] 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. --- core/anki.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/anki.py b/core/anki.py index b21aa73..91b5aa9 100644 --- a/core/anki.py +++ b/core/anki.py @@ -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],