from fastapi.responses import JSONResponse
from fastapi.encoders import jsonable_encoder
from trainer_mods.files import get_file_list
import os

def mod_get_speaker_voices(speaker:str):
        voices = get_file_list(f'/MMVC_Trainer/dataset/textful/{speaker}/wav/*.wav')

        texts = get_file_list(f'/MMVC_Trainer/dataset/textful/{speaker}/text/*.txt')

        readable_texts = get_file_list(f'/MMVC_Trainer/dataset/textful/{speaker}/readable_text/*.txt')

        items = voices
        items.extend(texts)
        items.extend(readable_texts)
        items = [ os.path.splitext(os.path.basename(x))[0] for x in items]
        items = sorted(set(items))
        data = {
                "voices":items
                }
        json_compatible_item_data = jsonable_encoder(data)
        return JSONResponse(content=json_compatible_item_data)