66 lines
1.4 KiB
Go
66 lines
1.4 KiB
Go
package spells
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"gitea.maximumdirect.net/eric/notarius/internal/framework/contracts"
|
|
"gitea.maximumdirect.net/eric/notarius/internal/framework/pipeline"
|
|
)
|
|
|
|
const Key = "dnd/spells"
|
|
const ArtifactType = "dnd.spell_cast"
|
|
const SchemaVersion = "v1"
|
|
|
|
var requiredCapabilities = []string{
|
|
"chunks",
|
|
"source.transcript",
|
|
}
|
|
|
|
var providedCapabilities = []string{
|
|
"dnd.spell_casts",
|
|
}
|
|
|
|
var _ contracts.Extractor = (*Extractor)(nil)
|
|
|
|
type Extractor struct{}
|
|
|
|
func New() *Extractor {
|
|
return &Extractor{}
|
|
}
|
|
|
|
func (e *Extractor) Key() string {
|
|
return Key
|
|
}
|
|
|
|
func (e *Extractor) ArtifactType() string {
|
|
return ArtifactType
|
|
}
|
|
|
|
func (e *Extractor) SchemaVersion() string {
|
|
return SchemaVersion
|
|
}
|
|
|
|
func (e *Extractor) Validators() []contracts.Validator {
|
|
return nil
|
|
}
|
|
|
|
func (e *Extractor) Extract(ctx context.Context, req contracts.ExtractionRequest) (contracts.ExtractionResult, error) {
|
|
return contracts.ExtractionResult{}, fmt.Errorf("dnd spells extractor: extraction is not implemented")
|
|
}
|
|
|
|
func ModuleSpec() pipeline.ModuleSpec {
|
|
return pipeline.ModuleSpec{
|
|
Key: Key,
|
|
Stage: pipeline.StageExtract,
|
|
Requires: append([]string(nil), requiredCapabilities...),
|
|
Provides: append([]string(nil), providedCapabilities...),
|
|
}
|
|
}
|
|
|
|
func Register(registry *pipeline.ExtractorRegistry) error {
|
|
return registry.RegisterWithSpec(ModuleSpec(), func() (contracts.Extractor, error) {
|
|
return New(), nil
|
|
})
|
|
}
|