39 lines
1006 B
Go
39 lines
1006 B
Go
package builtin
|
|
|
|
import (
|
|
"context"
|
|
"sort"
|
|
|
|
"gitea.maximumdirect.net/eric/seriatim/internal/config"
|
|
"gitea.maximumdirect.net/eric/seriatim/internal/model"
|
|
"gitea.maximumdirect.net/eric/seriatim/internal/report"
|
|
)
|
|
|
|
type placeholderMerger struct{}
|
|
|
|
func (placeholderMerger) Name() string {
|
|
return "placeholder-merger"
|
|
}
|
|
|
|
func (placeholderMerger) Merge(ctx context.Context, in []model.CanonicalTranscript, cfg config.Config) (model.MergedTranscript, []report.Event, error) {
|
|
if err := ctx.Err(); err != nil {
|
|
return model.MergedTranscript{}, nil, err
|
|
}
|
|
|
|
segments := make([]model.Segment, 0)
|
|
for _, transcript := range in {
|
|
segments = append(segments, transcript.Segments...)
|
|
}
|
|
|
|
sort.SliceStable(segments, func(i, j int) bool {
|
|
return model.SegmentLess(segments[i], segments[j])
|
|
})
|
|
|
|
return model.MergedTranscript{
|
|
Segments: segments,
|
|
OverlapGroups: nil,
|
|
}, []report.Event{
|
|
report.Info("merge", "placeholder-merger", "merged placeholder canonical transcript(s)"),
|
|
}, nil
|
|
}
|