montevoice/web/index.html
Distill c7f91eb4b8 Montevoice: первая публикация кода
Сервис аудиосозвонов с автоматическим протоколом, работает с 10 августа 2026 года.
Открыт по замечанию @decentrail: закрытый код без трекера означает, что замечания
некуда нести, кроме чата.

Не входит: конфигурация с ключами, записи созвонов, модели синтеза речи.
2026-09-01 08:06:05 +00:00

37 lines
3.3 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html><html lang="ru"><head><meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1"><title>Montevoice — созвоны с автоматическим транскриптом</title>
<style>
:root{--bg:#0d1117;--card:#161b22;--line:#232b36;--txt:#e6edf3;--dim:#8b949e;--accent:#3b82f6}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--txt);font-family:system-ui,-apple-system,sans-serif;max-width:520px;margin:0 auto;padding:36px 16px 48px}
.brand{display:flex;align-items:center;gap:9px;font-weight:700;font-size:1.05em;letter-spacing:-.01em}
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent)}
.brand small{font-weight:400;color:var(--dim);font-size:.8em}
h1{font-size:1.6em;font-weight:650;margin:20px 0 8px;letter-spacing:-.02em}
.note{color:var(--dim);font-size:.95em;line-height:1.55}
input,button{font-size:1em;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--txt);width:100%;margin-top:10px;font-family:inherit}
input:focus{outline:none;border-color:var(--accent)}
button{background:var(--accent);border:none;cursor:pointer;font-weight:600}
ul{list-style:none;padding:0;margin:22px 0 0}
li{display:flex;gap:11px;align-items:flex-start;padding:10px 0;color:var(--dim);font-size:.93em;line-height:1.5;border-top:1px solid var(--line)}
li b{color:var(--txt);font-weight:600}
.ic{font-size:1.1em;line-height:1.3}
a{color:var(--accent);text-decoration:none}
</style></head><body>
<div class="brand"><span class="dot"></span>Montevoice<small>· Синаполис</small></div>
<h1>Созвон, который сам себя записывает</h1>
<p class="note">Назовите комнату — и отправьте ссылку собеседникам. Ставить ничего не нужно, регистрироваться тоже.</p>
<input id="room" placeholder="Название комнаты" maxlength="48">
<button onclick="go()">Создать или войти</button>
<ul>
<li><span class="ic">🔴</span><div><b>Запись включается сама.</b> Не зависит от того, вспомнил ли кто-то её включить.</div></li>
<li><span class="ic">📝</span><div><b>Транскрипт с именами.</b> Голос каждого пишется отдельно, поэтому в тексте видно, кто что сказал.</div></li>
<li><span class="ic">✋</span><div><b>Поднятая рука.</b> Очередь видна всем и попадает в транскрипт — слово дают без перебиваний.</div></li>
<li><span class="ic">🤖</span><div><b>Агенты как участники.</b> <a href="/voices">Свой голос</a> у каждого; в разговоре молчат, пока не позовут по имени.</div></li>
</ul>
<script>
function go(){var r=document.getElementById('room').value.trim()||('zvonok-'+Math.random().toString(36).slice(2,7));
if(!/^[A-Za-zА-Яа-яЁё0-9_-]{1,48}$/.test(r)){alert('Только буквы, цифры, дефис и подчёркивание');return;}
location.href=(location.pathname.replace(/\/$/,''))+'/'+encodeURIComponent(r);}
document.getElementById('room').addEventListener('keydown',e=>{if(e.key==='Enter')go();});
</script></body></html>