2023-09-11 15:43:09 +00:00
/ *
Copyright © 2023 Seednode < seednode @ seedno . de >
* /
2023-09-13 04:35:17 +00:00
package audio
2023-09-11 15:43:09 +00:00
import (
"fmt"
2023-09-12 21:32:19 +00:00
"strings"
2023-09-13 04:35:17 +00:00
"seedno.de/seednode/roulette/types"
2023-09-11 15:43:09 +00:00
)
2023-09-13 04:35:17 +00:00
type Format struct { }
2023-09-13 01:56:39 +00:00
2023-09-13 04:35:17 +00:00
func ( t Format ) Css ( ) string {
2023-09-13 01:56:39 +00: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-13 04:35:17 +00:00
func ( t Format ) Title ( queryParams , fileUri , filePath , fileName , mime string ) string {
2023-09-13 01:56:39 +00:00
return fmt . Sprintf ( ` <title>%s</title> ` , fileName )
}
2023-09-13 04:35:17 +00:00
func ( t Format ) Body ( queryParams , fileUri , filePath , fileName , mime string ) string {
2023-09-13 01:56:39 +00:00
return fmt . Sprintf ( ` <a href="/%s"><audio controls autoplay loop preload="auto"><source src="%s" type="%s" alt="Roulette selected: %s">Your browser does not support the audio tag.</audio></a> ` ,
queryParams ,
fileUri ,
mime ,
fileName )
}
2023-09-13 04:35:17 +00:00
func ( t Format ) Extensions ( ) map [ string ] string {
2023-09-13 01:56:39 +00:00
return map [ string ] string {
` .mp3 ` : ` audio/mpeg ` ,
` .ogg ` : ` audio/ogg ` ,
` .oga ` : ` audio/ogg ` ,
2023-09-11 15:43:09 +00:00
}
}
2023-09-13 01:56:39 +00:00
2023-09-13 04:35:17 +00:00
func ( t Format ) MimeTypes ( ) [ ] string {
2023-09-13 01:56:39 +00:00
return [ ] string {
` application/ogg ` ,
` audio/mp3 ` ,
` audio/mpeg ` ,
` audio/mpeg3 ` ,
` audio/ogg ` ,
` audio/x-mpeg-3 ` ,
}
}
2023-09-13 04:35:17 +00:00
func ( t Format ) Validate ( filePath string ) bool {
2023-09-13 01:56:39 +00:00
return true
}
2023-09-13 04:35:17 +00:00
2023-09-13 14:26:15 +00:00
func New ( ) Format {
return Format { }
}
2023-09-13 04:35:17 +00:00
2023-09-13 14:26:15 +00:00
func init ( ) {
types . SupportedFormats . Register ( New ( ) )
2023-09-13 04:35:17 +00:00
}