удалён вход Telegram, владелец записи стал обязателен в схеме
- убраны клиент бота, транспорт обновлений, отправитель сообщений, сборка входа при старте, секция настроек и зависимость go-telegram-bot-api; из конвейера ушла доставка ответа отправителю — исход виден опросом готовности. Колонки адресата и значение источника остались в схеме: применённые шаги не переписываются - шаг 202608140003 запрещает пустого владельца у аудиозаписи и у файла; существующие строки он не проверяет, и это принято сознательно — искать их надо запросом до выкладки - ревью нашло два пред-существующих дефекта, оба закрыты: пустой второй ответ распознавателя стирал сохранённую расшифровку, а пустая расшифровка перестала быть заметной вместе с убранной доставкой. Попутно поднят golang.org/x/image до v0.45.0 — красный шаг vulns, воспроизводился и на чистом master
This commit is contained in:
@@ -10,13 +10,11 @@ const OtherFormatLabel = "other"
|
||||
|
||||
// knownFormats — закрытый перечень расширений, которые допускаются меткой.
|
||||
//
|
||||
// Состав: пути, которые выдаёт Telegram (голосовое приходит как
|
||||
// `voice/file_N.oga`, кружок — с `.mp4`), плюс форматы, доезжающие приёмом по
|
||||
// HTTP, плюс собственное умолчание сервиса на случай имени без расширения.
|
||||
// Списку, по которому бот отбирает **документы** (`isAudioDocument`), перечень
|
||||
// намеренно не равен: тот судит по типу содержимого и своим списком пользуется
|
||||
// лишь когда типа нет, а сюда попадает и то, что приходит другими путями.
|
||||
// Сведение двух списков в один уронило бы основной вход сервиса в `other`.
|
||||
// Состав: форматы, доезжающие приёмом по HTTP, плюс собственное умолчание
|
||||
// сервиса на случай имени без расширения. Значения `oga` и `mp4` достались от
|
||||
// убранного входа Telegram — голосовое приходило оттуда как `voice/file_N.oga`,
|
||||
// кружок с `.mp4`, — и остаются: перечень сужает **метку**, а не приём, и
|
||||
// выброшенное из него значение уронило бы прежние записи в `other`.
|
||||
var knownFormats = map[string]struct{}{
|
||||
"mp3": {},
|
||||
"wav": {},
|
||||
|
||||
@@ -49,9 +49,11 @@ var (
|
||||
[]string{"source_format", "target_format", "error"},
|
||||
)
|
||||
|
||||
// Поднят ли вход приёма. Единственный канал наблюдения, автоматизированный
|
||||
// у владельца: потерянный вход иначе виден только строкой журнала при
|
||||
// старте, а проба здоровья отвечает «ok» и без него.
|
||||
// Поднят ли вход приёма. Метка ставится только тому входу, который у сервиса
|
||||
// есть; вход остался один, и метки убранного здесь не появляется — ноль рядом
|
||||
// с ним читался бы как поломка, а вечная единица — как исправность того, чего
|
||||
// нет. Различать поднятый и неподнятый признак снова станет, когда входов
|
||||
// снова станет больше одного.
|
||||
IntakeUpGauge = promauto.NewGaugeVec(
|
||||
prometheus.GaugeOpts{
|
||||
Name: "transcriber_intake_up",
|
||||
@@ -60,17 +62,6 @@ var (
|
||||
[]string{"channel"},
|
||||
)
|
||||
|
||||
// Ответы, которые не удалось доставить отправителю. Работа при этом
|
||||
// сделана, шаг отказа не объявляет, и без счётчика недоставка видна только
|
||||
// в журнале — до его ротации.
|
||||
UndeliveredReplyCounter = promauto.NewCounterVec(
|
||||
prometheus.CounterOpts{
|
||||
Name: "transcriber_undelivered_reply_count",
|
||||
Help: "Count of replies that could not be delivered to the sender",
|
||||
},
|
||||
[]string{"reason"},
|
||||
)
|
||||
|
||||
// Размер файла после конвертации (в байтах)
|
||||
OutputFileSizeHistogram = promauto.NewHistogramVec(
|
||||
prometheus.HistogramOpts{
|
||||
|
||||
Reference in New Issue
Block a user