summaryrefslogtreecommitdiff
path: root/internal/transcoder/transcoder.go
diff options
from:
to:
context:
space:
mode:
Diffstat (limited to 'internal/transcoder/transcoder.go')
-rw-r--r--internal/transcoder/transcoder.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/internal/transcoder/transcoder.go b/internal/transcoder/transcoder.go
new file mode 100644
index 0000000..3dbdf7e
--- /dev/null
+++ b/internal/transcoder/transcoder.go
@@ -0,0 +1,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,
+}