459b6b2f02
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.
42 lines
813 B
Go
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)
|
|
}
|