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.
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
pip install ankisync
- 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.
- This is the successor to AnkiTools. I will not update it anymore.