1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package omdb
- import (
- "fmt"
- "io/ioutil"
- "net/http"
- "os"
- )
- const (
- base = "http://www.omdbapi.com/?apikey=%s&i=%s"
- )
- var cache map[string][]byte
- func Get(imdbID string) ([]byte, error) {
- if cache == nil {
- cache = make(map[string][]byte)
- }
- if b, ok := cache[imdbID]; ok {
- return b, nil
- }
- url := fmt.Sprintf(base, apiKey(), imdbID)
- resp, err := http.Get(url)
- if err != nil {
- return nil, fmt.Errorf("error getting %q: %w", url, err)
- }
- defer resp.Body.Close()
- b, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- return nil, fmt.Errorf("error reading body from %q: %w", url, err)
- }
- cache[imdbID] = b
- return b, nil
- }
- func apiKey() string {
- return os.Getenv("API_KEY")
- }
|