Ficha privada de invitados y condiciones de participación

- /invitados.html (noindex) con enlace personal ?k=<código>; las respuestas
  llegan por correo desde contacto@ en lugar de Google Forms.
- server.py: /api/invitados/check y /api/invitados (códigos en INVITE_TOKENS).
- terminos.html: sección 5 con las condiciones de participación.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSyR5Zw5eGj6oPTRVjvP1b
This commit is contained in:
Alex
2026-10-20 23:50:53 +02:00
co-authored by Claude Sonnet 5.5
parent f0682d7de8
commit da8cc01fad
10 changed files with 589 additions and 7 deletions
+123
View File
@@ -0,0 +1,123 @@
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex, nofollow, noarchive">
<title>Ficha del invitado · Anda Que No Sabes Ná</title>
<meta name="theme-color" content="#06080d">
<link rel="icon" href="img/avatar.jpg">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header class="top">
<a class="brand" href="/" aria-label="Anda Que No Sabes Ná, inicio"><img src="img/avatar.jpg" alt="" width="40" height="40"><span>Anda que no sabes ná</span></a>
</header>
<main class="legal contact guest">
<h1>Ficha del <em>invitado</em></h1>
<p id="hola" class="lead-c" hidden></p>
<p id="malo" class="status err" hidden>Este enlace no es válido o ha caducado. Escríbenos a <a href="mailto:andaquenosabesnada@gmail.com">andaquenosabesnada@gmail.com</a> y te mandamos uno nuevo.</p>
<p id="intro" class="lead-c" hidden>Queremos conocerte un poco antes de darle al REC. No hace falta que prepares respuestas perfectas: esto nos sirve para encontrar buenas historias, preguntas interesantes y, sobre todo, temas sobre los que merezca la pena hablar.</p>
<form id="g" class="form" novalidate hidden data-ok="¡Gracias! Hemos recibido tu ficha. Te escribiremos pronto con los siguientes pasos.">
<label>Tu correo electrónico (opcional, para poder responderte)
<input name="email" type="email" autocomplete="email" maxlength="200">
</label>
<fieldset class="sec">
<legend>👤 Tú</legend>
<label>Nombre y cómo prefieres que te presentemos <span class="req" title="Obligatoria">*</span>
<input name="q01" type="text" maxlength="300" required>
</label>
<label>¿A qué te dedicas actualmente? <span class="req" title="Obligatoria">*</span>
<textarea name="q02" rows="4" maxlength="3000" required></textarea>
</label>
<label>¿Cuál es tu proyecto, empresa o actividad principal?
<textarea name="q03" rows="4" maxlength="3000"></textarea>
</label>
<label>LinkedIn, web o cualquier enlace que nos ayude a conocerte mejor
<input name="q04" type="text" maxlength="300">
</label>
<label>Tus redes sociales que quieras que mencionemos o utilicemos para promocionar el episodio
<textarea name="q05" rows="4" maxlength="3000"></textarea>
</label>
</fieldset>
<fieldset class="sec">
<legend>🎙️ Para conocerte un poco mejor</legend>
<label>Si tuvieras que contarnos tu historia en dos minutos, ¿por dónde empezarías? <span class="req" title="Obligatoria">*</span>
<textarea name="q06" rows="4" maxlength="3000" required></textarea>
</label>
<label>¿Qué tema podrías estar hablando durante horas sin aburrirte? <span class="req" title="Obligatoria">*</span>
<textarea name="q07" rows="4" maxlength="3000" required></textarea>
</label>
<label>¿Hay alguna experiencia, proyecto, fracaso, éxito o anécdota que te parezca especialmente buena para contar en el podcast? <span class="req" title="Obligatoria">*</span>
<textarea name="q08" rows="4" maxlength="3000" required></textarea>
</label>
<label>¿Qué idea, mito o tópico de tu sector te gustaría desmontar?
<textarea name="q09" rows="4" maxlength="3000"></textarea>
</label>
</fieldset>
<fieldset class="sec">
<legend>🔥 Vamos a meternos en harina</legend>
<p class="note">Contestar en esta sección es opcional</p>
<label>¿Hay alguna opinión tuya sobre tu sector que pueda generar debate?
<textarea name="q10" rows="4" maxlength="3000"></textarea>
</label>
<label>¿Qué pregunta te hacen siempre y estás cansado/a de responder?
<textarea name="q11" rows="4" maxlength="3000"></textarea>
</label>
<label>¿Hay algo que normalmente no se cuenta cuando se habla de tu profesión, sector o trayectoria y que crees que deberíamos contar?
<textarea name="q12" rows="4" maxlength="3000"></textarea>
</label>
<label>Si pudiéramos conseguir que después de escucharte alguien cambiara de opinión sobre una cosa, ¿qué te gustaría que fuera?
<textarea name="q13" rows="4" maxlength="3000"></textarea>
</label>
</fieldset>
<fieldset class="sec">
<legend>🚧 Territorio delicado</legend>
<p class="note">No hace falta justificarlo. Queremos saber dónde están tus límites antes de empezar.</p>
<label>¿Hay algún tema que prefieras que no toquemos? <span class="req" title="Obligatoria">*</span>
<textarea name="q14" rows="4" maxlength="3000" required></textarea>
</label>
<label>¿Hay alguna persona, empresa, experiencia o asunto sobre el que prefieras que no hagamos preguntas?
<textarea name="q15" rows="4" maxlength="3000"></textarea>
</label>
<label>Y... ¿Hay algún otro tema de tu vida que quieras contarnos?
<textarea name="q16" rows="4" maxlength="3000"></textarea>
</label>
</fieldset>
<fieldset class="sec">
<legend>📣 Y para terminar...</legend>
<p class="note">Contestar en esta sección es opcional</p>
<label>¿Hay algún proyecto, libro, producto, evento o iniciativa que tengas ahora mismo y que te gustaría dar a conocer durante la entrevista?
<textarea name="q17" rows="4" maxlength="3000"></textarea>
</label>
<label>¿Hay alguna pregunta que te encantaría que te hiciéramos y que normalmente nadie te hace?
<textarea name="q18" rows="4" maxlength="3000"></textarea>
</label>
<label>¿Hay alguna historia que te gustaría contar sí o sí?
<textarea name="q19" rows="4" maxlength="3000"></textarea>
</label>
</fieldset>
<fieldset class="sec">
<legend>Antes de enviar</legend>
<p class="note">Este podcast se realiza de forma altruista y colaborativa. Antes de enviar, lee las <a href="terminos.html#participacion" target="_blank" rel="noopener">condiciones de participación</a>.</p>
<div class="trap" aria-hidden="true"><label>No rellenes este campo <input name="web" type="text" tabindex="-1" autocomplete="off"></label></div>
<label class="check">
<input name="consent" type="checkbox" required>
<span>He leído y acepto las <a href="terminos.html#participacion" target="_blank" rel="noopener">condiciones de participación</a> descritas. <span class="req">*</span></span>
</label>
<label class="check">
<input name="privacy" type="checkbox" required>
<span>He leído la <a href="privacidad.html" target="_blank" rel="noopener">política de privacidad</a> y acepto que usen estos datos para preparar el episodio. <span class="req">*</span></span>
</label>
</fieldset>
<button class="btn primary" type="submit">Enviar mi ficha</button>
<p id="st" class="status" role="status" aria-live="polite"></p>
<p class="note">Tus respuestas se guardan en este navegador mientras escribes, por si cierras la página. Se borran al enviarlas.</p>
</form>
</main>
<script src="invitados.js"></script>
</body>
</html>