from aiohttp import web
import utils.web
import utils.text
from extend.hangul_romanize import Transliter
from extend.hangul_romanize.rule import academic

class Hanja:
    @staticmethod
    def convertToRomaja(self, hanja: str):
        transliter = Transliter(academic)
        segList = utils.text.splitAscii(hanja)
        sentenceList = []
        for seg in segList:
            if seg == " ":
                sentenceList.append("-")
            elif utils.text.isAscii(seg):
                if utils.text.isAsciiPunc(seg):
                    sentenceList.append(seg)
                else:
                    sentenceList.append([seg])
            else:
                roma = transliter.translit(seg)
                sentenceList.append(roma.split(" "))
        return sentenceList

    @staticmethod
    async def hanja2roma(request: web.Request):
        params = await utils.web.get_param(request, {
            "sentence": {
                "required": True,
            },
        })
        sentence = params.get('sentence')

        data = Hanja.convertToRomaja(sentence)
        return await utils.web.api_response(1, data, request=request)