Added publishing of uploads to built site

This commit is contained in:
Leon Mika 2026-03-03 22:36:24 +11:00
parent 48f39133d7
commit d0cebe6564
13 changed files with 145 additions and 20 deletions

View file

@ -2,6 +2,7 @@ package publisher
import (
"context"
"io"
"log"
"os"
@ -16,15 +17,18 @@ import (
"lmika.dev/lmika/weiro/providers/db"
"lmika.dev/lmika/weiro/providers/sitebuilder"
"lmika.dev/lmika/weiro/providers/siteexporter"
"lmika.dev/lmika/weiro/providers/uploadfiles"
)
type Publisher struct {
db *db.Provider
up *uploadfiles.Provider
}
func New(db *db.Provider) *Publisher {
func New(db *db.Provider, up *uploadfiles.Provider) *Publisher {
return &Publisher{
db: db,
up: up,
}
}
@ -40,6 +44,12 @@ func (p *Publisher) Publish(ctx context.Context, site models.Site) error {
return err
}
// Fetch all uploads of site
uploads, err := p.db.SelectUploadsOfSite(ctx, site.ID)
if err != nil {
return err
}
for _, target := range targets {
if !target.Enabled {
continue
@ -49,6 +59,10 @@ func (p *Publisher) Publish(ctx context.Context, site models.Site) error {
Site: site,
Posts: posts,
BaseURL: target.BaseURL,
Uploads: uploads,
OpenUpload: func(u models.Upload) (io.ReadCloser, error) {
return p.up.OpenUpload(site, u)
},
}
if err := p.publishSite(ctx, pubSite, target); err != nil {