удалён вход Telegram, владелец записи стал обязателен в схеме
- убраны клиент бота, транспорт обновлений, отправитель сообщений, сборка входа при старте, секция настроек и зависимость go-telegram-bot-api; из конвейера ушла доставка ответа отправителю — исход виден опросом готовности. Колонки адресата и значение источника остались в схеме: применённые шаги не переписываются - шаг 202608140003 запрещает пустого владельца у аудиозаписи и у файла; существующие строки он не проверяет, и это принято сознательно — искать их надо запросом до выкладки - ревью нашло два пред-существующих дефекта, оба закрыты: пустой второй ответ распознавателя стирал сохранённую расшифровку, а пустая расшифровка перестала быть заметной вместе с убранной доставкой. Попутно поднят golang.org/x/image до v0.45.0 — красный шаг vulns, воспроизводился и на чистом master
This commit is contained in:
@@ -58,7 +58,3 @@ type AudioRecognizer interface {
|
||||
// обращаясь к нему. По нему архив пересчитывается без единого рубля.
|
||||
Parse(raw []byte) (*entity.RecognitionOutcome, error)
|
||||
}
|
||||
|
||||
type TelegramMessageSender interface {
|
||||
Send(text string, chatId int64, replyToMessageId *int) error
|
||||
}
|
||||
|
||||
@@ -5,15 +5,6 @@ import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// ErrDeliveryChannelDown — канал, которым отвечают отправителю, не поднят.
|
||||
// Отдаётся отправителем-заглушкой, которого получает ядро, когда вход не
|
||||
// настроен.
|
||||
//
|
||||
// Значение сентинельное, а не тип: соседям по ряду есть что нести — состояние,
|
||||
// идентификатор задачи, — а этому нечего. Заглушка не знает ни задачи, ни чата,
|
||||
// и запись о недоставке делает шаг, у которого задача под рукой.
|
||||
var ErrDeliveryChannelDown = errors.New("delivery channel is down")
|
||||
|
||||
// ErrOwnerRequired — приём по HTTP дошёл до заведения задачи, а владельца ему не
|
||||
// назвали. Значение сентинельное: нести отказу нечего, а имя учётной записи в
|
||||
// него не кладётся никогда.
|
||||
@@ -29,9 +20,9 @@ func (e *JobNotFoundError) Error() string {
|
||||
}
|
||||
|
||||
// LostAcquisitionError — захват задачи за время работы шага достался другому.
|
||||
// Шаг, получивший его, завершается без записи результата и без ответа
|
||||
// отправителю: иначе два воркера пишут в одну задачу по очереди, а отправитель
|
||||
// получает два ответа на одну запись.
|
||||
// Шаг, получивший его, завершается без записи результата: иначе два воркера
|
||||
// пишут в одну запись по очереди, портя её результат, и счётчик отказов
|
||||
// сбрасывает тот, кто уже не владелец.
|
||||
type LostAcquisitionError struct {
|
||||
JobID string
|
||||
}
|
||||
|
||||
@@ -44,11 +44,11 @@ type FileRepository interface {
|
||||
// файле. Имя задаёт сервис: умолчание хранилища, строящее его из имени
|
||||
// отправителя, не применяется.
|
||||
//
|
||||
// ownerID — владелец записи, которой файл принадлежит; пустой значит «файл
|
||||
// без владельца», и таков всякий файл записи, принятой ботом. Владелец
|
||||
// лежит своей колонкой, а не выводится через запись: файл переживает свою
|
||||
// запись — шаг заводит его до сохранения, и потерянный захват оставляет файл
|
||||
// с владельцем и без ссылки.
|
||||
// ownerID — владелец записи, которой файл принадлежит, и он обязателен:
|
||||
// колонка владельца пустого значения не принимает, пустой отвергается
|
||||
// схемой. Владелец лежит своей колонкой, а не выводится через запись: файл
|
||||
// переживает свою запись — шаг заводит его до сохранения, и потерянный
|
||||
// захват оставляет файл с владельцем и без ссылки.
|
||||
Create(name string, work WorkFile, meta FileMeta, ownerID string) (*entity.File, error)
|
||||
GetByID(id string) (*entity.File, error)
|
||||
// Open отдаёт содержимое хранимого файла потоком.
|
||||
|
||||
Reference in New Issue
Block a user