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]
|
created = [note_id for note_id in results if note_id is not None]
|
||||||
skipped = len(results) - len(created)
|
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(
|
logger.info(
|
||||||
"Anki: added %d card(s), skipped %d duplicate(s) for '%s'",
|
"Anki: added %d card(s), skipped %d duplicate(s) for '%s'",
|
||||||
len(created), skipped, source_title[:40],
|
len(created), skipped, source_title[:40],
|
||||||
|
|||||||
Reference in New Issue
Block a user