Doing in Anki what AnkiConnect cannot do
Project description
ankisync
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
from ankisync.builder import FieldBuilder, TemplateBuilder
with Anki() as a:
a.add_model(
name='foo',
fields=[FieldBuilder(name, i) for i, name in enumerate(['field_a', 'field_b', 'field_c'])],
templates=[TemplateBuilder(
name=k,
question=q,
answer=a,
order=i
) for i, (k, [q,a]) in enumerate({
'Forward': [QUESTION1, ANSWER1],
'Reverse': [QUESTION2, ANSWER2]
}.items())]
)
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
from ankisync.builder import FieldBuilder, TemplateBuilder, ModelBuilder, DeckBuilder
with Apkg('bar.apkg') as a:
model_id = a.init(
first_model=ModelBuilder(
name='foo',
fields=[FieldBuilder(name, i) for i, name in enumerate(['field_a', 'field_b', 'field_c'])],
templates=[TemplateBuilder(
name=k,
question=q,
answer=a,
order=i
) for i, (k, [q,a]) in enumerate({
'Forward': [QUESTION1, ANSWER1],
'Reverse': [QUESTION2, ANSWER2]
}.items())]
),
first_deck=DeckBuilder(name='baz')
)
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ankisync-0.1.4.tar.gz
(20.7 kB
view hashes)
Built Distribution
Close
Hashes for ankisync-0.1.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 147999895056b0c6d01383550240569e70fa418ae45f39dc250c6341a7478434 |
|
MD5 | 3f3bcf0c6cd955155bbb18d19c921f19 |
|
BLAKE2b-256 | 997a2cef0bd01b23e1797d2879673d6aa205b6cb6e8530c9cbac4e1f8a9a6a9b |