diff --git a/notebooks/read_collections.ipynb b/notebooks/read_collections.ipynb new file mode 100644 index 0000000..865a6c6 --- /dev/null +++ b/notebooks/read_collections.ipynb @@ -0,0 +1,182 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "cd .." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Reading Collections\n", + "\n", + "This notebook allows to view your collections. Note currently we are using the anki from the submodule. In the future, we should be able to use the anki installed using `pip install anki` however the current collections do not seem compatibile with the latest library." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Install Anki in venv\n", + "!pip3 install anki" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from anki import Collection\n", + "from anki.utils import intTime\n", + "import time" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Open Database\n", + "\n", + "Make sure you close the database otherwise it will be locked and you will not be able to use your sync server." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "collection_path = \"./collections/anki/collection.anki2\"\n", + "col = Collection(collection_path)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### View Collections" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(f'Collection Name: {col.name()}')\n", + "print(f'Cards in Collection: {col.noteCount()}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### View Decks" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print('Decks:')\n", + "for deck in col.decks.all():\n", + " print(f\"{deck['id']}. {deck['name']}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### View Cards" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "deck_id = None\n", + "print('Cards in deck:')\n", + "i = 0\n", + "for card_id in col.decks.cids(deck_id):\n", + " i+=1\n", + " print(f'{i}. {card_id}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### View Notes" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "card_id = None\n", + "print('Notes in card:')\n", + "note_id = col.getCard(card_id).nid\n", + "print(f\"1. Front: {col.getNote(note_id).fields[0]}\")\n", + "print(f\"2. Back: {col.getNote(note_id).fields[1]}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Close Database" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "col.close()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}