node build fixed
This commit is contained in:
100
seanime-2.9.10/internal/handlers/filecache.go
Normal file
100
seanime-2.9.10/internal/handlers/filecache.go
Normal file
@@ -0,0 +1,100 @@
|
||||
package handlers
|
||||
|
||||
import (
|
||||
"seanime/internal/util"
|
||||
"strings"
|
||||
|
||||
"github.com/labstack/echo/v4"
|
||||
)
|
||||
|
||||
// HandleGetFileCacheTotalSize
|
||||
//
|
||||
// @summary returns the total size of cache files.
|
||||
// @desc The total size of the cache files is returned in human-readable format.
|
||||
// @route /api/v1/filecache/total-size [GET]
|
||||
// @returns string
|
||||
func (h *Handler) HandleGetFileCacheTotalSize(c echo.Context) error {
|
||||
// Get the cache size
|
||||
size, err := h.App.FileCacher.GetTotalSize()
|
||||
if err != nil {
|
||||
return h.RespondWithError(c, err)
|
||||
}
|
||||
|
||||
// Return the cache size
|
||||
return h.RespondWithData(c, util.Bytes(uint64(size)))
|
||||
}
|
||||
|
||||
// HandleRemoveFileCacheBucket
|
||||
//
|
||||
// @summary deletes all buckets with the given prefix.
|
||||
// @desc The bucket value is the prefix of the cache files that should be deleted.
|
||||
// @desc Returns 'true' if the operation was successful.
|
||||
// @route /api/v1/filecache/bucket [DELETE]
|
||||
// @returns bool
|
||||
func (h *Handler) HandleRemoveFileCacheBucket(c echo.Context) error {
|
||||
|
||||
type body struct {
|
||||
Bucket string `json:"bucket"` // e.g. "onlinestream_"
|
||||
}
|
||||
|
||||
// Parse the request body
|
||||
var b body
|
||||
if err := c.Bind(&b); err != nil {
|
||||
return h.RespondWithError(c, err)
|
||||
}
|
||||
|
||||
// Remove all files in the cache directory that match the given filter
|
||||
err := h.App.FileCacher.RemoveAllBy(func(filename string) bool {
|
||||
return strings.HasPrefix(filename, b.Bucket)
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
return h.RespondWithError(c, err)
|
||||
}
|
||||
|
||||
// Return a success response
|
||||
return h.RespondWithData(c, true)
|
||||
}
|
||||
|
||||
// HandleGetFileCacheMediastreamVideoFilesTotalSize
|
||||
//
|
||||
// @summary returns the total size of cached video file data.
|
||||
// @desc The total size of the cache video file data is returned in human-readable format.
|
||||
// @route /api/v1/filecache/mediastream/videofiles/total-size [GET]
|
||||
// @returns string
|
||||
func (h *Handler) HandleGetFileCacheMediastreamVideoFilesTotalSize(c echo.Context) error {
|
||||
// Get the cache size
|
||||
size, err := h.App.FileCacher.GetMediastreamVideoFilesTotalSize()
|
||||
if err != nil {
|
||||
return h.RespondWithError(c, err)
|
||||
}
|
||||
|
||||
// Return the cache size
|
||||
return h.RespondWithData(c, util.Bytes(uint64(size)))
|
||||
}
|
||||
|
||||
// HandleClearFileCacheMediastreamVideoFiles
|
||||
//
|
||||
// @summary deletes the contents of the mediastream video file cache directory.
|
||||
// @desc Returns 'true' if the operation was successful.
|
||||
// @route /api/v1/filecache/mediastream/videofiles [DELETE]
|
||||
// @returns bool
|
||||
func (h *Handler) HandleClearFileCacheMediastreamVideoFiles(c echo.Context) error {
|
||||
|
||||
// Clear the attachments
|
||||
err := h.App.FileCacher.ClearMediastreamVideoFiles()
|
||||
|
||||
if err != nil {
|
||||
return h.RespondWithError(c, err)
|
||||
}
|
||||
|
||||
// Clear the transcode dir
|
||||
h.App.MediastreamRepository.ClearTranscodeDir()
|
||||
|
||||
if h.App.MediastreamRepository != nil {
|
||||
go h.App.MediastreamRepository.CacheWasCleared()
|
||||
}
|
||||
|
||||
// Return a success response
|
||||
return h.RespondWithData(c, true)
|
||||
}
|
||||
Reference in New Issue
Block a user