mirror of
https://github.com/Monibuca/plugin-preview.git
synced 2025-09-27 03:15:51 +08:00
37 lines
734 B
Go
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)
|
|
}
|
|
}
|