39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
import click
|
|
import re
|
|
from ankimaker.commands import cli
|
|
from ankimaker.tasks import basic_pandas_to_anki
|
|
|
|
|
|
@cli.command('csv')
|
|
@click.option('-i', '--input', 'input_file', type=click.Path(exists=True))
|
|
@click.option('-o', '--output', 'output_file', type=click.Path(exists=False))
|
|
@click.option('-c', '--conf', 'config_file', default=None, type=click.STRING)
|
|
@click.option('-n', '--name', 'name', default=None, type=click.STRING)
|
|
def generate_anki(
|
|
input_file,
|
|
output_file,
|
|
name,
|
|
config_file,
|
|
):
|
|
output_file = parse_output(output_file)
|
|
if name is None:
|
|
name = get_name_from_output(output_file)
|
|
basic_pandas_to_anki(input_file, output_file, name)
|
|
|
|
|
|
def parse_output(filename):
|
|
filetype = filename.split('.')[-1] if len(filename.split('.')) > 0 else None
|
|
if filetype is None:
|
|
return filename + '.apkg'
|
|
elif filetype != 'apkg':
|
|
filename.replace(filetype, 'apkg')
|
|
return filename+filetype
|
|
else:
|
|
return filename
|
|
|
|
|
|
def get_name_from_output(filename):
|
|
updated_file = filename.split('/')[-1] if len(filename.split('/')) > 0 else filename
|
|
updated_file = re.sub(r'(.apkg)', '', updated_file)
|
|
return updated_file
|