diff options
-rw-r--r-- | cmd/cetus/bpod.go | 90 |
1 files changed, 7 insertions, 83 deletions
diff --git a/cmd/cetus/bpod.go b/cmd/cetus/bpod.go index 39f6d0b..e3b898f 100644 --- a/cmd/cetus/bpod.go +++ b/cmd/cetus/bpod.go @@ -2,7 +2,6 @@ package main import ( "fmt" - "io/ioutil" "log" "os" "time" @@ -31,62 +30,12 @@ func execBPOD() { cacheDir := fmt.Sprintf("%s/%s", cache.GetDir(), "bpod") os.MkdirAll(cacheDir, os.ModePerm) - // Check if the file is available locally, if it is then don't - // download it again and get it from disk - // - // We don't know the bpod date because that will be there in - // response & we can't read the response without requesting - // it. So this will assume the bpod date to be today's date if - // *bpodRand is not set true. If *bpodRand is set true then we - // can't assume the date. Also this way too it can cause error - // if our assumed date doesn't matches date at the server. - - if !random { - // If not random and the file exists then read from - // disk, if the file doesn't exist then get it and - // save it to disk. - file = fmt.Sprintf("%s/%s.json", cacheDir, time.Now().UTC().Format("2006-01-02")) - if _, err := os.Stat(file); err == nil { - data, err := ioutil.ReadFile(file) - // Not being able to read from the cache file - // is a small error and the program shouldn't - // exit but should continue after printing the - // log so that the user can investigate it - // later. - if err != nil { - err = fmt.Errorf("%s%s\n%s", - "bpod.go: failed to read file to data: ", file, - err.Error()) - log.Println(err) - dlAndCacheBPODBody() - } - body = string(data) - - } else if os.IsNotExist(err) { - dlAndCacheBPODBody() - - } else { - // If file existed then that is handled by the - // if block, if it didn't exist then that is - // handled by the else if block. If we reach - // here then that means it's Schrödinger's - // file & something else went wrong. - log.Fatal(err) - } - } else { - // If random then get the file and save it to disk - // after unmarshal because we don't know the file name - // yet. Caching on random was disabled because the - // solution was very hacky and inconsistent with - // caching on random = false. - body, err = bpod.GetJson(reqInfo) - if err != nil { - err = fmt.Errorf("%s\n%s", - "bpod.go: failed to get json response from api", - err.Error()) - log.Fatal(err) - } - + body, err = bpod.GetJson(reqInfo) + if err != nil { + err = fmt.Errorf("%s\n%s", + "bpod.go: failed to get json response from api", + err.Error()) + log.Fatal(err) } if dump { @@ -106,8 +55,6 @@ func execBPOD() { } res.StartDate = dt.Format("2006-01-02") - file = fmt.Sprintf("%s/%s.json", cacheDir, res.StartDate) - // Send a desktop notification if notify flag was passed. if notify { n := notification.Notif{} @@ -140,7 +87,7 @@ func execBPOD() { // First it downloads the image to the cache directory and // then tries to set it with feh. If the download fails then // it exits with a non-zero exit code. - imgFile := fmt.Sprintf("%s/%s", cacheDir, res.Title) + imgFile := fmt.Sprintf("%s/%s:%s", cacheDir, res.StartDate, res.Title) // Check if the file is available locally, if it is then don't // download it again and set it from disk @@ -161,26 +108,3 @@ func execBPOD() { log.Fatal(err) } } - -func dlAndCacheBPODBody() { - body, err = bpod.GetJson(reqInfo) - if err != nil { - err = fmt.Errorf("%s\n%s", - "bpod.go: failed to get json response from api", - err.Error()) - log.Fatal(err) - } - - // Write body to the cache so that it can be read later. - err = ioutil.WriteFile(file, []byte(body), 0644) - - // Not being able to write to the cache file is a small error - // and the program shouldn't exit but should continue after - // printing the log so that the user can investigate it later. - if err != nil { - err = fmt.Errorf("%s\n%s", - "bpod.go: failed to write body to file: ", file, - err.Error()) - log.Println(err) - } -} |