Files
plugin-preview/main.go
2022-06-08 10:14:14 +08:00

37 lines
734 B
Go

package preview
import (
"embed"
"mime"
"net/http"
"path/filepath"
"strings"
. "m7s.live/engine/v4"
)
//go:embed ui
var f embed.FS
type PreviewConfig struct {
}
func (p *PreviewConfig) OnEvent(event any) {
}
var plugin = InstallPlugin(&PreviewConfig{})
func (p *PreviewConfig) ServeHTTP(w http.ResponseWriter, r *http.Request) {
ss := strings.Split(r.URL.Path, "/")
if b, err := f.ReadFile("ui/" + ss[len(ss)-1]); err == nil {
w.Header().Set("Content-Type", mime.TypeByExtension(filepath.Ext(ss[len(ss)-1])))
w.Write(b)
} else {
w.Header().Set("Cross-Origin-Opener-Policy", "same-origin")
w.Header().Set("Cross-Origin-Embedder-Policy", "require-corp")
b, err = f.ReadFile("ui/index.html")
w.Write(b)
}
}