summaryrefslogtreecommitdiff
path: root/internal/blog/client.go
diff refs
from:
to:
flip
diff options
context:
space:
mode:
Diffstat (limited to 'internal/blog/client.go')
-rw-r--r--internal/blog/client.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/internal/blog/client.go b/internal/blog/client.go
new file mode 100644
index 0000000..53eb0fd
--- /dev/null
+++ b/internal/blog/client.go
@@ -0,0 +1,28 @@
+package blog
+
+import (
+ "time"
+
+ "github.com/SayaAndy/saya-today-web/config"
+ "github.com/SayaAndy/saya-today-web/internal/frontmatter"
+)
+
+type Page struct {
+ Link string
+ FileName string
+ Lang string
+ ModifiedTime time.Time
+ Metadata *frontmatter.Metadata
+}
+
+type Client interface {
+ Scan(prefix string) ([]*Page, error)
+ GetMedleys() ([]MedleyEntry, error)
+ ReadAll(path string) ([]byte, error)
+ ReadFrontmatter(path string) (metadata *frontmatter.Metadata, markdown []byte, err error)
+}
+
+var NewClientMap = map[string]func(*config.StorageConfig) (Client, error){
+ "b2": NewB2Client,
+ "s3": NewS3Client,
+}