anc
Переименование говорящих и экран «Новая запись» (#13)
- Имя говорящего в расшифровке — кнопка: нажал, вписал «Ольга», Enter —
подпись сменилась во всех его репликах, а имя целым словом — в
конспекте, задачах и других результатах («Я» там не трогается).
- «Записать встречу» в меню, «Записать» в шапке и на главной открывают
экран «Новая запись»: что запишется, совет про наушники, предупреждение
участникам с копированием. Запись начинается только кнопкой
«Начать запись».
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
87935b9
30 сентября 2026 г.
new.ts
// Экран «Новая запись»: «Записать встречу» ведёт сюда, а не запускает запись
// сразу (решение владельца 01.10.2026). Здесь видно, что запишется, совет про
// наушники и предупреждение участникам; запись начинается только кнопкой
// «Начать запись».
import { api } from "../api";
import { esc } from "../dom";
import type { Scope } from "../scope";
import { copy, startRecording, state } from "../state";
export async function renderNew(root: HTMLElement, scope: Scope): Promise {
// Запись уже идёт — вторую не начать, показываем идущую.
if (state.recording) {
location.replace(`#/m/${encodeURIComponent(state.recording.meeting_id)}`);
return;
}
const view = await api.getSettings();
if (!scope.alive) return;
if (!view.capture_supported) {
root.innerHTML = `
Новая запись
На этой системе запись не поддерживается. Добавьте готовый аудиофайл — перетащите его в окно или выберите через меню.
`;
return;
}
root.innerHTML = `
Новая запись
Запишется
ваш микрофон
весь звук компьютера — голоса собеседников в Zoom, Google Meet, Телемосте и где угодно
Лучше в наушниках — так голоса собеседников не попадут в микрофон второй раз.
Предупредите участников
${esc(view.settings.warning_text)}
Скопировать для чата встречи
Изменить текст
${
view.openrouter_key
? ""
: `Записать можно и без ИИ. Чтобы потом расшифровать, подключите его в настройках.`
}
Начать запись
`;
root.querySelector("[data-copy-warning]")!.addEventListener("click", () =>
copy(view.settings.warning_text, "Предупреждение скопировано — вставьте его в чат встречи"),
);
root.querySelector("[data-start]")!.addEventListener("click", async (e) => {
const b = e.currentTarget as HTMLButtonElement;
b.disabled = true;
b.textContent = "Начинаю…";
await startRecording();
// Не началась — ошибку уже показало сообщение внизу, кнопку возвращаем.
if (scope.alive && !state.recording) {
b.disabled = false;
b.textContent = "Начать запись";
}
});
}