This application is a Flask-based web app that integrates with SQLite to access the Kindle's vocabulary database,
extracts words and their usage, and uses AnkiConnect to add these words to an Anki deck. The Kindle's vocabulary
database is a SQLite file named vocab.db
(e.g., for macOS located at the system
path /Volumes/Kindle/system/vocabulary/vocab.db
when the Kindle device is mounted).
The vocab.db
database consists of several tables, with the LOOKUPS
and WORDS
tables being the most relevant.
The LOOKUPS
table contains the word usage and its metadata, while the WORDS
table contains the words themselves.
- Automatically processes new vocabulary highlights.
- Adds new flashcards to a specified Anki deck.
- Updates existing flashcards with additional example sentences (upon duplicate highlights/lookups to Kindle vocab db).
- Supports custom deck and card type configurations (not yet implemented).
- Provides a priority deck for frequent vocabulary (vocab words that are encountered more than a certain threshold while reading on Kindle).
For details, see the models.py
module and this file: schema_synch.md
It is recommended to use PyCharm Community Edition and set up a Poetry virtual environment.
-
Install the necessary dependencies:
poetry install
-
Install the AnkiConnect add-on in Anki by following the instructions on anki-connect's GitHub page.
-
Start the Anki application and ensure the AnkiConnect add-on is running.
-
Run the tests to ensure everything is set up correctly. Running the module has not been fully tested yet.