Create a settings struct for paths

This commit is contained in:
Zoe Roux 2024-01-29 00:27:20 +01:00
parent e886fbcc5f
commit 9fd7ca35f1
6 changed files with 28 additions and 23 deletions

View File

@ -237,7 +237,7 @@ func (h *Handler) GetAttachment(c echo.Context) error {
}
<-wait
path := fmt.Sprintf("%s/%s/att/%s", src.GetMetadataPath(), sha, name)
path := fmt.Sprintf("%s/%s/att/%s", src.Settings.Metadata, sha, name)
return c.File(path)
}
@ -263,7 +263,7 @@ func (h *Handler) GetSubtitle(c echo.Context) error {
}
<-wait
path := fmt.Sprintf("%s/%s/sub/%s", src.GetMetadataPath(), sha, name)
path := fmt.Sprintf("%s/%s/sub/%s", src.Settings.Metadata, sha, name)
return c.File(path)
}

View File

@ -12,14 +12,6 @@ type Extractor struct {
lock sync.RWMutex
}
func GetMetadataPath() string {
out := os.Getenv("GOCODER_METADATA_ROOT")
if out == "" {
return "/metadata"
}
return out
}
func NewExtractor() *Extractor {
return &Extractor{
extracted: make(map[string]<-chan struct{}),
@ -49,8 +41,8 @@ func (e *Extractor) RunExtractor(path string, sha string, subs *[]Subtitle) <-ch
e.lock.Unlock()
go func() {
attachment_path := fmt.Sprintf("%s/%s/att", GetMetadataPath(), sha)
subs_path := fmt.Sprintf("%s/%s/sub", GetMetadataPath(), sha)
attachment_path := fmt.Sprintf("%s/%s/att", Settings.Metadata, sha)
subs_path := fmt.Sprintf("%s/%s/sub", Settings.Metadata, sha)
os.MkdirAll(attachment_path, 0o644)
os.MkdirAll(subs_path, 0o755)

View File

@ -23,14 +23,6 @@ type FileStream struct {
alock sync.Mutex
}
func GetOutPath() string {
out := os.Getenv("GOCODER_CACHE_ROOT")
if out == "" {
return "/cache"
}
return out
}
func NewFileStream(path string) (*FileStream, error) {
info_chan := make(chan struct {
info *MediaInfo
@ -55,7 +47,7 @@ func NewFileStream(path string) (*FileStream, error) {
return &FileStream{
Path: path,
Out: fmt.Sprintf("%s/%s", GetOutPath(), info.info.Sha),
Out: fmt.Sprintf("%s/%s", Settings.Outpath, info.info.Sha),
Keyframes: keyframes,
CanTransmux: can_transmux,
Info: info.info,

View File

@ -0,0 +1,21 @@
package src
import "os"
func GetEnvOr(env string, def string) string {
out := os.Getenv(env)
if out == "" {
return def
}
return out
}
type SettingsT struct {
Outpath string
Metadata string
}
var Settings = SettingsT{
Outpath: GetEnvOr("GOCODER_CACHE_ROOT", "/cache"),
Metadata: GetEnvOr("GOCODER_METADATA_ROOT", "/metadata"),
}

View File

@ -71,7 +71,7 @@ func extractThumbnail(path string, name string) (string, error) {
if err != nil {
return "", err
}
out := fmt.Sprintf("%s/%s", GetMetadataPath(), ret.Sha)
out := fmt.Sprintf("%s/%s", Settings.Metadata, ret.Sha)
sprite_path := fmt.Sprintf("%s/sprite.png", out)
vtt_path := fmt.Sprintf("%s/sprite.vtt", out)

View File

@ -19,7 +19,7 @@ type Transcoder struct {
}
func NewTranscoder() (*Transcoder, error) {
out := GetOutPath()
out := Settings.Outpath
dir, err := os.ReadDir(out)
if err != nil {
return nil, err