-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgenerate.py
62 lines (52 loc) · 1.51 KB
/
generate.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/env python3
import genanki
# Generate multiplication table for num num x start ... num x end
# using given model and deck
def generate(model, deck, num, start, end):
for n in range(start, end+1):
a = num
b = n
c = a*b
card_a = genanki.Note(
model=model,
tags=['a', f'{a}x'],
fields=[f'? x {b} = {c}', f'{a}'])
card_b = genanki.Note(
model=model,
tags=['b', f'{a}x'],
fields=[f'{a} x ? = {c}', f'{b}'])
card_c = genanki.Note(
model=model,
tags=['c', f'{a}x'],
fields=[f'{a} x {b} = ?', f'{c}'])
deck.add_note(card_a)
deck.add_note(card_b)
deck.add_note(card_c)
def create_model(title):
return genanki.Model(
56764534343,
title,
fields=[
{'name': 'Kysymys'},
{'name': 'Vastaus'},
],
templates=[
{
'name': 'Kortti 1',
'qfmt': '{{Kysymys}}',
'afmt': '{{FrontSide}}<hr id="answer">{{Vastaus}}',
},
])
def create_deck(title):
return genanki.Deck(
2345454363,
title)
title = '3 ja 4 kertotaulut'
model = create_model(title)
deck = create_deck(title)
# 3x1 ... 3x10
generate(model, deck, 3, 1, 10)
# 4x1 ... 4x10
generate(model, deck, 4, 1, 10)
filename = '3_ja_4.apkg'
genanki.Package(deck).write_to_file(filename)