Skip to main content

Doing in Anki what AnkiConnect cannot do

Project description

ankisync

PyPI version shields.io PyPI license

Doing what AnkiConnect cannot do, including

  • Creating new *.apkg
  • Creating new note type / model
  • Upserting notes
  • Setting next review
  • Setting card statistics
  • Note ids to Card ids

But of course, this is very unsafe compared to pure AnkiConnect. I will not hold liability to damage it may cost.

Usage

Please close your Anki application first before doing this!

from ankisync.anki import Anki
with Anki() as a:
    a.add_model(
        name='foo',
        fields=['field_a', 'field_b', 'field_c'],
        templates={
            'Forward': (QUESTION1, ANSWER1),
            'Reverse': (QUESTION2, ANSWER2)
        }
    )

Most of the other API's are similar to AnkiConnect, but _by_id()'s are preferred.

Creating a new *.apkg is also possible.

from ankisync.apkg import Apkg
with Apkg('bar.apkg') as a:
    model_id = a.init(
        first_model=dict(
            name='foo',
            fields=['field_a', 'field_b', 'field_c'],
            templates={
                'Forward': (QUESTION1, ANSWER1),
                'Reverse': (QUESTION2, ANSWER2)
            }
        ),
        first_deck='baz',
        first_note_data=False
    )
    a.add_note({
        'modelName': 'foo',
        'deckId': 1,  # "Default" deck
        'fields': {
            'field_a': 'aaaaa',
            'field_b': 123  # Numbers will be converted to string.
        }
    })

For the example of how I use it in action, see https://github.com/patarapolw/zhlib/blob/master/zhlib/export.py

Installation

pip install ankisync

Contributions

  • What features outside AnkiConnect (or inside) do you want? I will try to implement it.
  • Help me understand the documentations, AnkiDroid Wiki, and Anki decks collaboration Wiki
  • Please help me implement the NotImplemented methods.

Note

  • This is the successor to AnkiTools. I will not update it anymore.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ankisync, version 0.2.2
Filename, size File type Python version Upload date Hashes
Filename, size ankisync-0.2.2-py3-none-any.whl (24.0 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size ankisync-0.2.2.tar.gz (20.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page