diff options
| author | 2026-05-17 17:13:32 +0700 | |
|---|---|---|
| committer | 2026-05-17 17:13:32 +0700 | |
| commit | e9353a66bf51486f702eaa0f591dea54c9bd4cd1 (patch) | |
| tree | dd8d121366259045799475f4e402f2908af1d997 /internal/blog/s3.go | |
| parent | 1c441f5eab9a2a24fe5309178ce010f32adac1c7 (diff) | |
| download | web-e9353a66bf51486f702eaa0f591dea54c9bd4cd1.tar.gz web-e9353a66bf51486f702eaa0f591dea54c9bd4cd1.zip | |
refactor: rewrite localization for dynamic set and get
feat: medley localnames
feat: integrate package minor updates
fix: on errors with blog client init write correct type
Diffstat (limited to 'internal/blog/s3.go')
| -rw-r--r-- | internal/blog/s3.go | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/internal/blog/s3.go b/internal/blog/s3.go index 04fad33..3c1a932 100644 --- a/internal/blog/s3.go +++ b/internal/blog/s3.go @@ -10,14 +10,13 @@ import ( "github.com/SayaAndy/saya-today-web/config" "github.com/SayaAndy/saya-today-web/internal/frontmatter" + "github.com/SayaAndy/saya-today-web/l10n" "github.com/aws/aws-sdk-go-v2/aws" awsconfig "github.com/aws/aws-sdk-go-v2/config" "github.com/aws/aws-sdk-go-v2/credentials" "github.com/aws/aws-sdk-go-v2/service/s3" ) -const s3ScanConcurrency = 32 - type S3Client struct { prefix string bucketName string @@ -60,6 +59,20 @@ func NewS3Client(cfg *config.StorageConfig) (Client, error) { return &S3Client{s3cfg.Prefix, s3cfg.BucketName, s3cl}, nil } +func (c *S3Client) GetMedleys() ([]MedleyEntry, error) { + idxRaw, err := c.readAll(MedleysIndexFileName) + if err != nil { + return nil, fmt.Errorf("read %s: %w", MedleysIndexFileName, err) + } + + var idx []MedleyEntry + if err := json.Unmarshal(idxRaw, &idx); err != nil { + return nil, fmt.Errorf("unmarshal %s: %w", MedleysIndexFileName, err) + } + + return idx, nil +} + func (c *S3Client) Scan(prefix string) ([]*Page, error) { out, err := c.s3cl.GetObject(context.Background(), &s3.GetObjectInput{ Bucket: aws.String(c.bucketName), @@ -156,6 +169,13 @@ func (c *S3Client) Scan(prefix string) ([]*Page, error) { } } + medleys, _ := c.GetMedleys() + for _, medley := range medleys { + for locale, localname := range medley.Localnames { + l10n.T.SetPath(localname, true, locale, "Medleys", medley.Codename) + } + } + return pages, nil } |