К содержимому
Все кейсы

Боты

antiTCK

Анонимные сообщения об инцидентах с ручной модерацией

Node.js 22TypeScriptgrammYPostgreSQL + PrismaZodpinoDockerVitest

Проблема

Канал, куда люди пишут об инцидентах, обязан защищать отправителя. Автопубликация в такой задаче — не фича, а способ выдать человека фоном на фотографии или номером в тексте.

Система

Пошаговый визард заявки в личке бота (медиа, описание, место), затем — приватный модераторский чат, где заявку одобряют, отклоняют или возвращают на уточнение. Публикация только после ручного одобрения и автоматической очистки: sanitizeSubmission вырезает телефоны, email, @username, URL, номера авто и документов; координаты округляются до уровня района. Заявки с призывами к насилию блокируются автоматически, все действия модераторов пишутся в аудит.

Роль

Соло-разработка: модель угроз, конвейер модерации, санитизация.

Результат

Ни одного пути автопубликации в коде — это архитектурный инвариант, а не настройка. Покрыто тестами, разворачивается одним compose.