Files
seanime-docker/seanime-2.9.10/internal/mediaplayers/vlc/browse.go
2025-09-20 14:08:38 +01:00

40 lines
1.2 KiB
Go

package vlc
import "github.com/goccy/go-json"
// File struct represents a single item in the browsed directory. Can be a file or a dir
type File struct {
Type string `json:"type"` // file or dir
Path string `json:"path"`
Name string `json:"name"`
AccessTime uint `json:"access_time"`
UID uint `json:"uid"`
CreationTime uint `json:"creation_time"`
GID uint `json:"gid"`
ModificationTime uint `json:"modification_time"`
Mode uint `json:"mode"`
URI string `json:"uri"`
Size uint `json:"size"`
}
// ParseBrowse parses Browse() responses to []File
func ParseBrowse(browseResponse string) (files []File, err error) {
var temp struct {
Files []File `json:"element"`
}
err = json.Unmarshal([]byte(browseResponse), &temp)
files = temp.Files
return
}
// Browse returns a File array with the items of the provided directory URI
func (vlc *VLC) Browse(uri string) (files []File, err error) {
var response string
response, err = vlc.RequestMaker("/requests/browse.json?uri=" + uri)
if err != nil {
return
}
files, err = ParseBrowse(response)
return
}