удалён вход Telegram, владелец записи стал обязателен в схеме
- убраны клиент бота, транспорт обновлений, отправитель сообщений, сборка входа при старте, секция настроек и зависимость go-telegram-bot-api; из конвейера ушла доставка ответа отправителю — исход виден опросом готовности. Колонки адресата и значение источника остались в схеме: применённые шаги не переписываются - шаг 202608140003 запрещает пустого владельца у аудиозаписи и у файла; существующие строки он не проверяет, и это принято сознательно — искать их надо запросом до выкладки - ревью нашло два пред-существующих дефекта, оба закрыты: пустой второй ответ распознавателя стирал сохранённую расшифровку, а пустая расшифровка перестала быть заметной вместе с убранной доставкой. Попутно поднят golang.org/x/image до v0.45.0 — красный шаг vulns, воспроизводился и на чистом master
This commit is contained in:
@@ -1,10 +1,9 @@
|
||||
# Transcriber Service
|
||||
|
||||
Сервис расшифровки аудиозаписей. Два входа — Telegram-бот и HTTP API.
|
||||
Сервис расшифровки аудиозаписей. Вход один — HTTP API.
|
||||
|
||||
## Возможности
|
||||
|
||||
- Приём аудио из Telegram: голосовые сообщения, аудиофайлы и документы с аудио
|
||||
- Приём аудиофайлов через HTTP API
|
||||
- Конвертация в ogg через ffmpeg
|
||||
- Распознавание речи через Yandex SpeechKit
|
||||
@@ -15,7 +14,6 @@
|
||||
|
||||
- **Язык**: Go 1.26, CGO не нужен
|
||||
- **Веб-фреймворк**: gin-gonic/gin
|
||||
- **Telegram**: go-telegram-bot-api
|
||||
- **Распознавание**: Yandex SpeechKit + Yandex Object Storage (S3)
|
||||
- **Конвертация**: ffmpeg
|
||||
- **Хранилище, файлы и панель**: встроенная PocketBase
|
||||
@@ -41,12 +39,11 @@
|
||||
Сервер запустится на порту из `[server] port`, по умолчанию 8080. Нужен
|
||||
установленный `ffmpeg`.
|
||||
|
||||
### Белый список Telegram
|
||||
### Кого пускают
|
||||
|
||||
Бот отвечает только тем, кто перечислен в конфиге. Кого и по какому признаку он
|
||||
пускает — [docs/security.md](docs/security.md), «Что разграничивает доступ»;
|
||||
известные прорехи образца конфига, включая недостающий ключ белого списка, —
|
||||
[docs/conventions/config.md](docs/conventions/config.md).
|
||||
Приём и опрос закрыты сессией OIDC. Что её выдаёт и чем она предъявляется —
|
||||
[docs/security.md](docs/security.md), «Что разграничивает доступ»; известные
|
||||
прорехи образца конфига — [docs/conventions/config.md](docs/conventions/config.md).
|
||||
|
||||
## Деплой
|
||||
|
||||
@@ -94,13 +91,11 @@ transcriber/
|
||||
│ ├── service/ # Конвейер расшифровки
|
||||
│ ├── controller/
|
||||
│ │ ├── http/ # HTTP-обработчики
|
||||
│ │ ├── tg/ # Telegram-бот
|
||||
│ │ └── worker/ # Фоновые воркеры
|
||||
│ └── adapter/
|
||||
│ ├── converter/ffmpeg/ # Конвертация аудио
|
||||
│ ├── metaviewer/ffmpeg/ # Длительность аудио
|
||||
│ ├── recognizer/yandex/ # SpeechKit + Object Storage
|
||||
│ ├── telegram/ # Отправка сообщений
|
||||
│ └── repo/pocketbase/ # Репозитории, схема коллекций, правила панели
|
||||
└── data/ # Каталог данных: база и файлы записей вместе
|
||||
├── data.db # База хранилища (создаётся автоматически)
|
||||
@@ -109,7 +104,7 @@ transcriber/
|
||||
|
||||
## Хранилище
|
||||
|
||||
Две коллекции, `files` и `transcribe_jobs`. Поля, ключи, правило времени и
|
||||
Коллекции хранилища — аудиозапись и её приложения. Поля, ключи, правило времени и
|
||||
идентификаторов, а также механика захвата задачи воркером —
|
||||
[docs/database.md](docs/database.md). Панель владельца — по адресу `/_/` того же
|
||||
порта; пароль от неё задаёт сам владелец по приглашению, которое сервис печатает
|
||||
|
||||
Reference in New Issue
Block a user