Anki add-on: WaniKani Sync

Anki AddOn to sync WaniKani into an Anki Deck Based on the WK3: Tokyo Drift deck for card style and JavaScript. The addon supports bi-directional sync, if so desired by the user. It can sync the Card-Due-Times to the times on WaniKani, and additionally report any reviews done by the user back to WaniKani, so you progress on the Website while learning in Anki. This generally only works properly if Anki was used when starting the entire study. If you used the WK3 deck before, I'd highly recommend not turn on the Due-Time-Sync, since it might heavily mess up your study schedule. Instead, there is a function to automatically report reviews for all mature (due in more than 7 days) notes to WaniKani, which can be optionally automatically run on every Anki startup, to over time bring your WK-Profile up to date with your Anki-Progress. The most simple way to use the AddOn is to only use it to sync the Subjects from WaniKani, and periodically update them (WK maintains their dataset quite frequently to include community feedback). It's not possible to sync notes your WaniKani account does not have access to. So if you are on a free account, you'll be limited to the first three levels. After installation, a WaniKani submenu will appear in the Tools-Menu of Anki. This is where you control most actions. The menu items should be self explanatory. There is an option to migrate from a WK3: Tokyo Drift deck. This will go over all existing notes in a pre-existing deck, and try to match them to a Subject on WaniKani. If it successfully manages to assign a subject to every card, it will update the IDs, and from then on allow you to pull note updates via the AddOn. Keep in mind that this is a one-way process. Once migrated, there is no way back. To use it, configure the deck and note type name to exactly match your existing ones, and then hit the Migrate button. Make a backup first, and check for suspended cards after migration. Those could not be matched up to WaniKani, and should be deleted or manually fixed up (somehow) Configuration WK_API_KEY: Create an Api-Key in your WaniKani profile and put it here. If you want to use the AddOn to do bi-directional sync, make sure to enable the assignments:start and reviews:create permissions. NOTE_TYPE_NAME: Name of the Note-Type which will be used for the WaniKani sync. Set this to whatever you like. If you want to migrate from WK3, set this to the exact name of the existing Note-Type. DECK_NAME: Same as above, but this time for the name of the deck. SYNC_ALL: Controls whether the AddOn will sync ALL subjects/cards from WaniKani, or just the ones you have unlocked yet. If you are starting a fresh study of WaniKani, you can turn this on, and also turn on due-time syncing and review reporting, and Anki should keep WaniKani reasonably up to date with your progress. REPORT_REVIEWS: If enabled, the AddOn will try to submit a review to WaniKani whenever a card is rated Good or Easy, and the sibling card isn't due or was last rated Hard or Again. SYNC_DUE_TIME: If enabled, the AddOn will set the due times according to whenever WaniKani thinks is best. This can clash with how Anki wants to do things, so it's inevitably a bit janked. But it should mostly prevent Anki from showing you cards too early, breaking reviews. Do NOT turn this on if you have pre-existing progress in your deck, unless you really know what you're doing and have a backup. FETCH_CONTEXT_PATTERNS: If enabled, parse the WaniKani websites HTML to extract the "Context Patterns" for each Vocab-Card. This is extremely slow since the Website is rate limited, and there are a lot of vocabs. It's highly recommended to leave this turned off for an initial full sync (since downloading all the voice clips is under the same rate limit) and then do an update-run later with this enabled (clear cache for full update). Fetching all patterns takes roughly 1.5 hours at the time of writing. AUTO_SYNC: If enabled, the AddOn will run the Sync-Function after every collection sync. AUTO_REPORT: If enabled, the AddOn will run the Mature-Review-Submission-Function after every collection sync.

GitHub repository: btbn/anki-wanikanisync
Languages: Python, HTML, CSS, Shell