from urllib.parse import urljoin, urlsplit, quote
import re

URI_ATTR = re.compile(r'URI="([^"]+)"')

def transformar_manifest(
    contenido,
    origen,
    crear_enlace
):
    """
    Transforma referencias HLS mediante una función
    que genera enlaces internos autorizados.
    """

    resultado = []

    for linea in contenido.splitlines():
        texto = linea.strip()

        if not texto:
            resultado.append(linea)
            continue

        if texto.startswith("#"):
            def reemplazar(match):
                destino = urljoin(origen, match.group(1))
                return 'URI="' + crear_enlace(destino) + '"'

            resultado.append(
                URI_ATTR.sub(reemplazar, linea)
            )
            continue

        destino = urljoin(origen, texto)
        resultado.append(crear_enlace(destino))

    return "\n".join(resultado) + "\n"
