Remove old transcoded values on startup

This commit is contained in:
Zoe Roux 2024-01-16 17:44:40 +01:00
parent 9d7e520168
commit c738e5bda3
2 changed files with 22 additions and 3 deletions

View File

@ -217,7 +217,12 @@ func main() {
e.Use(middleware.Logger())
e.HTTPErrorHandler = ErrorHandler
h := Handler{transcoder: src.NewTranscoder()}
transcoder, err := src.NewTranscoder()
if err != nil {
e.Logger.Fatal(err)
return
}
h := Handler{transcoder: transcoder}
e.GET("/:resource/:slug/direct", DirectStream)
e.GET("/:resource/:slug/master.m3u8", h.GetMaster)

View File

@ -3,6 +3,8 @@ package src
import (
"errors"
"log"
"os"
"path"
"sync"
)
@ -14,11 +16,23 @@ type Transcoder struct {
mutex sync.RWMutex
}
func NewTranscoder() *Transcoder {
func NewTranscoder() (*Transcoder, error) {
out := GetOutPath()
dir, err := os.ReadDir(out)
if err != nil {
return nil, err
}
for _, d := range dir {
err = os.RemoveAll(path.Join(out, d.Name()))
if err != nil {
return nil, err
}
}
return &Transcoder{
streams: make(map[string]*FileStream),
preparing: make(map[string]chan *FileStream),
}
}, nil
}
func (t *Transcoder) getFileStream(path string) (*FileStream, error) {