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:
joungmin
2026-02-28 08:42:29 +09:00
parent a9db6a8771
commit 9739daf481

View File

@@ -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],