summaryrefslogtreecommitdiff
path: root/internal/blog/client.go
blob: 53eb0fd26aa58586e378690d27310065874f3791 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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,
}