gomp/cache/cache.go
aditya-K2 459b6b2f02 Added Caching Module
The Caching Module Caches the images that have been extracted and for
persistence writes the images to a cache file.

In the cache file the data is stored by tab separated values

        `%s\t%s\t%s`

the cache is first loaded in the memory ( CACHE_LIST ) during the start of application
and then extracted images are added to the map CACHE_LIST which is
writtern to the cache file before exiting the program.
2021-11-13 14:37:07 +05:30

42 lines
813 B
Go

package cache
import (
"fmt"
"io/ioutil"
"os"
"strings"
)
var (
CACHE_LIST map[[2]string]string = make(map[[2]string]string)
)
func loadCache(path string) {
cacheFileContent, err := ioutil.ReadFile(path)
if err != nil {
fmt.Println("Could Not Read From Cache File")
}
lineSlice := strings.Split(string(cacheFileContent), "\n")
for _, line := range lineSlice {
if len(line) != 0 {
param := strings.Split(line, "\t")
if len(param) == 3 {
CACHE_LIST[[2]string{param[0], param[1]}] = param[2]
}
}
}
}
func writeToCache(path string) {
b, err := os.Create(path)
if err == nil {
for k, v := range CACHE_LIST {
b.Write([]byte(fmt.Sprintf("%s\t%s\t%s\n", k[0], k[1], v)))
}
}
}
func generateName(artist, album string) string {
return fmt.Sprintf("%s-%s.jpg", artist, album)
}