import json
import os

import pandas as pd

CUR_FILE = os.path.abspath(__file__)


def load_uid_to_text():
    cur_path = os.path.split(CUR_FILE)[0]
    with open(os.path.join(cur_path, "text-map.json")) as fi:
        return json.load(fi)


UID_TO_TEXT = load_uid_to_text()
ALLOWED_UIDS = frozenset(UID_TO_TEXT.keys())


def get_text_from_uid(key):
    return UID_TO_TEXT[key]


def is_valid_uid(uid):
    return uid in ALLOWED_UIDS


def uid_to_url(uid, base_url):
    return f"{base_url}/record-audio?key={uid}"


def write_mturk_csv(outpath, base_url):
    uids = list(ALLOWED_UIDS)
    urls = [uid_to_url(uid, base_url) for uid in uids]
    df = pd.Series(urls, name="url").to_frame()
    df.to_csv(outpath, index=False)
