import argparse
import glob
import os
import time

from googletrans import Translator
from googletrans.models import Translated

parser = argparse.ArgumentParser(description='Athos article translator')
parser.add_argument(
    '--in_dir',
    type=str,
    default='stiri',
    required=False,
)
parser.add_argument(
    '--out_dir',
    type=str,
    default='data_ro',
    required=False,
)

args = parser.parse_args()

if not os.path.exists(args.out_dir):
    os.makedirs(args.out_dir)

txt_files_en = glob.glob("stiri/*.txt")

translator = Translator()
result = translator.translate('veritas lux mea', src='en', dest='ro')


def loop_translation():
    loop = 0
    while loop < 10000:
        try:
            return translator.translate(open(file_path, 'rt',encoding='utf-8', errors = 'ignore').read(), src='en', dest='ro')
        except Exception as exception:
            print(str(exception))
        loop += 1
        time.sleep(1)
    return None


counter = 0
for file_path in txt_files_en:
    print(f'processing: {file_path}')

    out = loop_translation()
    if out is None:
        break
    file_out = open(f'{args.out_dir}/{os.path.basename(file_path)}', 'wt',encoding='utf-8', errors = 'ignore')
    file_out.write(out.text)
    file_out.close()
    time.sleep(1)

    counter += 1
    if counter == 100000:
        break
