from google.cloud import translate_v2 as Translate
import os
from .script_detector import script_cat
from requests.exceptions import SSLError
from MNF.settings import BasePath
basePath = BasePath()
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = rf"{basePath}/MNF/json_keys/authentication.json"
translate_client = Translate.Client()
# client = translate.TranslationServiceClient()

def script_det(text):
    punctuations = '''!()-[]{};:'"\,<>./?@#$%^&*_~'''
    no_punct = ""
    for char in text:
        if char not in punctuations:
            no_punct = char
            break
    script = script_cat(no_punct)[0]
    return script

def language_detector(text):
    lang_detected = []
    print(text,"sentence recieved")

    #primary language detector
    try:
        result = translate_client.detect_language(text)
        print("length re:",len(result['language']))

        if len(result['language']) > 3:
            #print((str(result['language']).split("-"))[0])
            return (str(result['language']).split("-"))[0]
            #lang_detected.append((str(result['language']).split("-"))[0])
        else:
            #lang_detected.append(result['language'])
            return result['language']
    except SSLError:
        language_detector(text)

def detecting_languages(line):
    non_dial_src_lang = ""
    non_dial_src_script = ""
    dial_src_lang = ""
    dial_src_script = ""
    if line[3] == "action":
        non_dial_src_lang = language_detector(line[2])
        non_dial_src_script = script_det(line[2])


    elif line[3] == "dialogue":
        dial_src_lang = language_detector(line[2])
        dial_src_script = script_det(line[2])

    return [non_dial_src_lang, non_dial_src_script, dial_src_lang, dial_src_script]