-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupdate_anki.py
38 lines (32 loc) · 955 Bytes
/
update_anki.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
"""
Update Anki model templates
"""
from pathlib import Path
import requests
here = Path(__file__).parent
build_dir = here / '_build'
def invoke(action, **params):
data = {'action': action, 'version': 6}
if params:
data['params'] = params
r = requests.post('http://127.0.0.1:8765', json=data)
return r.json()
def get_model_templates(model_dir: Path):
for dir in model_dir.iterdir():
if not dir.is_dir():
continue
front = (dir / 'front.html').read_text()
back = (dir / 'back.html').read_text()
yield dir.name, {'Front': front, 'Back': back}
def update_model_template(model_dir: Path):
model_name = model_dir.name
model = {
'name': model_name,
'templates': dict(get_model_templates(model_dir)),
}
result = invoke('updateModelTemplates', model=model)
if error := result['error']:
print(error)
else:
print(f'Updated template for {model_name}')
update_model_template(build_dir / 'Chinese')