Save info to json file on fs

This commit is contained in:
Zoe Roux 2024-02-26 16:04:03 +01:00
parent ff8a791a51
commit 1b73beccf1

View File

@ -189,7 +189,8 @@ func GetInfo(path string, sha string, route string) (*MediaInfo, error) {
ready: readyChan, ready: readyChan,
} }
go func() { go func() {
if err := getSavedInfo(sha, mi); err == nil { save_path := fmt.Sprintf("%s/%s/info.json", Settings.Metadata, sha)
if err := getSavedInfo(save_path, mi); err == nil {
log.Printf("Using mediainfo cache on filesystem for %s", path) log.Printf("Using mediainfo cache on filesystem for %s", path)
close(readyChan) close(readyChan)
return return
@ -201,6 +202,7 @@ func GetInfo(path string, sha string, route string) (*MediaInfo, error) {
mi.ready = readyChan mi.ready = readyChan
mi.Sha = sha mi.Sha = sha
close(readyChan) close(readyChan)
saveInfo(save_path, mi)
}() }()
return mi return mi
}) })
@ -208,8 +210,8 @@ func GetInfo(path string, sha string, route string) (*MediaInfo, error) {
return ret, err return ret, err
} }
func getSavedInfo(sha string, mi *MediaInfo) error { func getSavedInfo(save_path string, mi *MediaInfo) error {
saved_file, err := os.Open(fmt.Sprintf("%s/%s/info.json", Settings.Metadata, sha)) saved_file, err := os.Open(save_path)
if err != nil { if err != nil {
return err return err
} }
@ -224,6 +226,14 @@ func getSavedInfo(sha string, mi *MediaInfo) error {
return nil return nil
} }
func saveInfo(save_path string, mi *MediaInfo) error {
content, err := json.Marshal(*mi)
if err != nil {
return err
}
return os.WriteFile(save_path, content, 0o644)
}
func getInfo(path string, route string) (*MediaInfo, error) { func getInfo(path string, route string) (*MediaInfo, error) {
defer printExecTime("mediainfo for %s", path)() defer printExecTime("mediainfo for %s", path)()