summaryrefslogtreecommitdiff
path: root/internal/transcoder/transcoder.go
blob: 3dbdf7efade496796a632ab06ef98b554c924841 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package transcoder

import (
	"github.com/SayaAndy/saya-today-article-metadata-add/internal/draft"
)

// Transcoder turns a parsed draft into a published artifact (an S3 page, a
// Telegram thread, ...). Transcode runs once per draft; Finalize runs once
// after all drafts have been processed.
type Transcoder interface {
	Name() string
	Transcode(doc *draft.Document) error
	Finalize() error
}

var NewTranscoderMap = map[string]func(cfg any) (Transcoder, error){
	"sayauz":   NewSayauzTranscoder,
	"telegram": NewTelegramTranscoder,
}