2023-09-12 13:06:45 -05:00
|
|
|
/*
|
2024-01-14 12:39:14 -06:00
|
|
|
Copyright © 2024 Seednode <seednode@seedno.de>
|
2023-09-12 13:06:45 -05:00
|
|
|
*/
|
|
|
|
|
2023-09-12 23:35:17 -05:00
|
|
|
package flash
|
2023-09-12 13:06:45 -05:00
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"strings"
|
2023-09-12 23:35:17 -05:00
|
|
|
|
|
|
|
"seedno.de/seednode/roulette/types"
|
2023-09-12 13:06:45 -05:00
|
|
|
)
|
|
|
|
|
2024-01-14 12:39:14 -06:00
|
|
|
type Format struct{}
|
2023-09-12 20:56:39 -05:00
|
|
|
|
2023-09-12 23:35:17 -05:00
|
|
|
func (t Format) Css() string {
|
2023-09-12 20:56:39 -05:00
|
|
|
var css strings.Builder
|
|
|
|
|
|
|
|
css.WriteString(`html,body{margin:0;padding:0;height:100%;}`)
|
|
|
|
css.WriteString(`a{color:inherit;display:block;height:100%;width:100%;text-decoration:none;}`)
|
|
|
|
|
|
|
|
return css.String()
|
|
|
|
}
|
|
|
|
|
2023-09-15 14:28:21 -05:00
|
|
|
func (t Format) Title(rootUrl, fileUri, filePath, fileName, prefix, mime string) (string, error) {
|
|
|
|
return fmt.Sprintf(`<title>%s</title>`, fileName), nil
|
2023-09-12 20:56:39 -05:00
|
|
|
}
|
|
|
|
|
2023-09-15 14:28:21 -05:00
|
|
|
func (t Format) Body(rootUrl, fileUri, filePath, fileName, prefix, mime string) (string, error) {
|
2023-09-12 20:56:39 -05:00
|
|
|
var html strings.Builder
|
|
|
|
|
|
|
|
html.WriteString(fmt.Sprintf(`<script src="https://unpkg.com/@ruffle-rs/ruffle"></script><script>window.RufflePlayer.config = {autoplay:"on"};</script><embed src="%s"></embed>`, fileUri))
|
2023-09-13 23:24:29 -05:00
|
|
|
html.WriteString(fmt.Sprintf(`<br /><button onclick="window.location.href = '%s';">Next</button>`, rootUrl))
|
2023-09-12 20:56:39 -05:00
|
|
|
|
2023-09-15 14:28:21 -05:00
|
|
|
return html.String(), nil
|
2023-09-12 20:56:39 -05:00
|
|
|
}
|
|
|
|
|
2023-09-12 23:35:17 -05:00
|
|
|
func (t Format) Extensions() map[string]string {
|
2023-09-12 20:56:39 -05:00
|
|
|
return map[string]string{
|
|
|
|
`.swf`: `application/x-shockwave-flash`,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-10-09 09:47:17 -05:00
|
|
|
func (t Format) MediaType(extension string) string {
|
2023-09-14 17:37:22 -05:00
|
|
|
extensions := t.Extensions()
|
|
|
|
|
|
|
|
value, exists := extensions[extension]
|
|
|
|
if exists {
|
|
|
|
return value
|
2023-09-12 13:06:45 -05:00
|
|
|
}
|
2023-09-14 17:37:22 -05:00
|
|
|
|
|
|
|
return ""
|
2023-09-12 13:06:45 -05:00
|
|
|
}
|
2023-09-12 20:56:39 -05:00
|
|
|
|
2023-09-12 23:35:17 -05:00
|
|
|
func (t Format) Validate(filePath string) bool {
|
2023-09-12 20:56:39 -05:00
|
|
|
return true
|
|
|
|
}
|
2023-09-12 23:35:17 -05:00
|
|
|
|
2023-09-15 15:13:45 -05:00
|
|
|
func (t Format) Type() string {
|
|
|
|
return "embed"
|
|
|
|
}
|
|
|
|
|
2023-09-13 09:26:15 -05:00
|
|
|
func init() {
|
2023-09-29 14:36:11 -05:00
|
|
|
types.SupportedFormats.Register(Format{})
|
2023-09-12 23:35:17 -05:00
|
|
|
}
|