add dictation model
This commit is contained in:
@@ -64,6 +64,23 @@ PHRASE_MODEL = Model(
|
||||
css=CSS,
|
||||
)
|
||||
|
||||
DICTATION_MODEL = Model(
|
||||
3187277536,
|
||||
"Phrase Model",
|
||||
fields=[
|
||||
{"name": "Translated"},
|
||||
{"name": "Phrase"},
|
||||
{"name": "Audio"},
|
||||
],
|
||||
templates=[
|
||||
{
|
||||
"name": "Card 1",
|
||||
"qfmt": "{{Audio}}<br>{{type:Phrase}}",
|
||||
"afmt": '{{FrontSide}}<hr id="answer">{{Phrase}}<br>{{Translated}}',
|
||||
},
|
||||
],
|
||||
css=CSS,
|
||||
)
|
||||
|
||||
HSK_MODEL = Model(
|
||||
1708536519,
|
||||
@@ -122,16 +139,52 @@ HSK_MODEL = Model(
|
||||
# Proccess
|
||||
|
||||
|
||||
def output_anki_dictation(
|
||||
process_file: ProcessFile, results: list[DictionaryResult]
|
||||
) -> Path:
|
||||
"""Creates an anki file for dictation result"""
|
||||
final_file = process_file.output_name.with_suffix(".apkg")
|
||||
deck_name = "::".join(
|
||||
process_file.input_file.parts[:-1] + (process_file.output_name.stem,)
|
||||
)
|
||||
deck = Deck(
|
||||
random.randrange(1 << 30, 1 << 31),
|
||||
deck_name,
|
||||
f"Deck for {final_file.name}, "
|
||||
"created in https://www.wolfang.info.ve/hskankicreator/",
|
||||
)
|
||||
package = Package(deck)
|
||||
audios = []
|
||||
for result in results:
|
||||
note = Note(
|
||||
model=DICTATION_MODEL,
|
||||
fields=[
|
||||
result.translated,
|
||||
result.line,
|
||||
f"[sound:{result.audio_path.name}]",
|
||||
],
|
||||
)
|
||||
deck.add_note(note)
|
||||
audios.append(result.audio_path)
|
||||
package.media_files = audios
|
||||
package.write_to_file(final_file)
|
||||
return final_file
|
||||
|
||||
|
||||
def output_anki_dictionary(
|
||||
process_file: ProcessFile, results: list[DictionaryResult]
|
||||
) -> Path:
|
||||
"""Creates an anki file from a dictionary results"""
|
||||
final_file = process_file.output_name.with_suffix(".apkg")
|
||||
print()
|
||||
deck_name = "::".join(
|
||||
process_file.input_file.parts[:-1] + (process_file.output_name.stem,)
|
||||
)
|
||||
deck = Deck(random.randrange(1 << 30, 1 << 31), deck_name)
|
||||
deck = Deck(
|
||||
random.randrange(1 << 30, 1 << 31),
|
||||
deck_name,
|
||||
f"Deck for {final_file.name}, "
|
||||
"created in https://www.wolfang.info.ve/hskankicreator/",
|
||||
)
|
||||
package = Package(deck)
|
||||
audios = []
|
||||
for result in results:
|
||||
@@ -161,7 +214,12 @@ def output_anki_phrase(
|
||||
deck_name = "::".join(
|
||||
process_file.input_file.parts[:-1] + (process_file.output_name.stem,)
|
||||
)
|
||||
deck = Deck(random.randrange(1 << 30, 1 << 31), deck_name)
|
||||
deck = Deck(
|
||||
random.randrange(1 << 30, 1 << 31),
|
||||
deck_name,
|
||||
f"Deck for {final_file.name}, "
|
||||
"created in https://www.wolfang.info.ve/hskankicreator/",
|
||||
)
|
||||
package = Package(deck)
|
||||
audios = []
|
||||
for result in results:
|
||||
|
||||
Reference in New Issue
Block a user