Saltar al contenido

Espinear textos con Python (FÁCIL)

Si tenemos un texto en formato «spin»  queremos transformarlo en texto normal este código en python nos hará el trabajo.

 """Ejemplo Texto Spin:

    Hola {mi nombre|me llamo|soy} {Antonio|Toni|Juan} y me gustan {los coches|las motos|los caballos}
    
    """


def spin(content):
   
    start = content.find('{')
    end = content.find('}')

    if start == -1 and end == -1:
        #none left
        return content
    elif start == -1:
        return content
    elif end == -1:
        raise "unbalanced brace"
    elif end < start:
        return content
    elif start < end:
        rest = spin(content[start+1:])
        end = rest.find('}')
        if end == -1:
            raise "unbalanced brace"
        return content[:start] + random.choice(rest[:end].split('|')) + spin(rest[end+1:])