From b47b8b1d11332fa58c9bd7075540ec240087acb0 Mon Sep 17 00:00:00 2001 From: WeebDataHoarder <57538841+WeebDataHoarder@users.noreply.github.com> Date: Sun, 13 Mar 2022 17:45:42 +0100 Subject: [PATCH] Http request / musicbrainz decoding fixes --- handler/metadata.go | 2 +- metadata/accuraterip.com/source.go | 8 +++++++- metadata/cache.go | 1 + metadata/cuetools.net/source.go | 2 ++ metadata/en.touhouwiki.net/source.go | 5 +++++ metadata/musicbrainz.org/source.go | 5 +++-- metadata/thwiki.cc/source.go | 6 ++++++ metadata/vgmdb.net/source.go | 4 ++++ 8 files changed, 29 insertions(+), 4 deletions(-) diff --git a/handler/metadata.go b/handler/metadata.go index d089cfe..1a4c8f7 100644 --- a/handler/metadata.go +++ b/handler/metadata.go @@ -32,7 +32,7 @@ func SearchMetadata(disc *DiscHandlerResult, fuzzy bool) (albums []*metadata.Alb } } } - if cddb1Source, ok := source.(metadata.CDDB1Source); (fuzzy || len(foundAlbums) == 0) && ok { + if cddb1Source, ok := source.(metadata.CDDB1Source); fuzzy && ok { foundAlbums = cddb1Source.FindByCDDB1(disc.TOC.GetCDDB1()) if fuzzy || len(foundAlbums) == 0 { for _, id := range disc.Identifiers.GetKind("cddb1") { diff --git a/metadata/accuraterip.com/source.go b/metadata/accuraterip.com/source.go index 7d8241b..6c53151 100644 --- a/metadata/accuraterip.com/source.go +++ b/metadata/accuraterip.com/source.go @@ -51,7 +51,13 @@ func (s *Source) FindMetadataByTOC(toc metadata.TOC) (results []AccurateRipMetad Method: "GET", URL: uri, }, time.Hour*24*14) - if err != nil || response.StatusCode != http.StatusOK { + if err != nil { + return nil + } + + defer response.Body.Close() + + if response.StatusCode != http.StatusOK { return nil } diff --git a/metadata/cache.go b/metadata/cache.go index f86af09..a830456 100644 --- a/metadata/cache.go +++ b/metadata/cache.go @@ -177,6 +177,7 @@ func (s *BadgerCacheStore) Get(request *http.Request) (response *http.Response, } func (s *BadgerCacheStore) Set(request *http.Request, response *http.Response) (*http.Response, error) { + defer response.Body.Close() key := getRequestKey(request) byteValue := encodeResponse(response) if len(byteValue) == 0 { diff --git a/metadata/cuetools.net/source.go b/metadata/cuetools.net/source.go index e1753c7..c2c8dcc 100644 --- a/metadata/cuetools.net/source.go +++ b/metadata/cuetools.net/source.go @@ -80,6 +80,7 @@ func (s *Source) FindByTocID(tocId metadata.TocID) (albums []*metadata.Album) { if err != nil { return nil } + defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { return nil @@ -241,6 +242,7 @@ func (s *Source) FindMetadataByTOC(toc metadata.TOC) *CueToolsMetadata { if err != nil { return nil } + defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { return nil diff --git a/metadata/en.touhouwiki.net/source.go b/metadata/en.touhouwiki.net/source.go index b1c5a30..a6481ce 100644 --- a/metadata/en.touhouwiki.net/source.go +++ b/metadata/en.touhouwiki.net/source.go @@ -73,6 +73,7 @@ func (s *Source) QueryCDDB(toc metadata.TOC, cddb metadata.CDDB1) (results []*me if err != nil { return nil } + defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { return nil @@ -108,6 +109,7 @@ func (s *Source) QueryCDDB(toc metadata.TOC, cddb metadata.CDDB1) (results []*me if err != nil { continue } + defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { continue @@ -207,6 +209,7 @@ func (s *Source) FindQueryArguments(queryArgs string, loose bool) (albums []*met if err != nil { return nil } + defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { return nil @@ -253,6 +256,7 @@ func (s *Source) GetSongLyrics(lyricsName string) (result []*metadata.TextLyrics if err != nil { return nil } + defer response.Body.Close() if response.StatusCode != http.StatusOK { return nil @@ -312,6 +316,7 @@ func (s *Source) GetAlbumInformation(id int) *metadata.Album { if err != nil { return nil } + defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { return nil diff --git a/metadata/musicbrainz.org/source.go b/metadata/musicbrainz.org/source.go index 762b452..bff99cc 100644 --- a/metadata/musicbrainz.org/source.go +++ b/metadata/musicbrainz.org/source.go @@ -137,8 +137,8 @@ type tagEntry struct { Name string `json:"name"` } type ratingEntry struct { - VotesCount int `json:"votes-count"` - Value int `json:"value"` + VotesCount int `json:"votes-count"` + Value *float64 `json:"value"` } type workEntry struct { Id string `json:"id"` @@ -361,6 +361,7 @@ func (s *Source) GetRelease(releaseId string) *metadata.Album { if err != nil { return nil } + defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { return nil diff --git a/metadata/thwiki.cc/source.go b/metadata/thwiki.cc/source.go index 35f4bba..e9a05ae 100644 --- a/metadata/thwiki.cc/source.go +++ b/metadata/thwiki.cc/source.go @@ -147,6 +147,7 @@ func (s *Source) FindQueryArguments(queryArgs string) (albums []*metadata.Album) if err != nil { return nil } + defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { return nil @@ -201,6 +202,7 @@ func (s *Source) FindAdvancedQueryArguments(queryArgs string) (albums []*metadat if err != nil { return nil } + defer response.Body.Close() if response.StatusCode != http.StatusOK { return nil @@ -235,6 +237,7 @@ func (s *Source) FindAdvancedQueryArguments(queryArgs string) (albums []*metadat if err != nil { return nil } + defer response.Body.Close() if response.StatusCode != http.StatusOK { return nil @@ -288,6 +291,7 @@ func (s *Source) GetArticle(title string) ([]interface{}, error) { if err != nil { return nil, err } + defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { return nil, err @@ -314,6 +318,7 @@ func (s *Source) GetFileURL(title string) string { if err != nil { return "" } + defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { return "" @@ -355,6 +360,7 @@ func (s *Source) GetSongLyrics(songName string) *metadata.LRCLyrics { if err != nil { return nil } + defer response.Body.Close() if response.StatusCode != http.StatusOK { return nil diff --git a/metadata/vgmdb.net/source.go b/metadata/vgmdb.net/source.go index 7fcc94c..dbf9c55 100644 --- a/metadata/vgmdb.net/source.go +++ b/metadata/vgmdb.net/source.go @@ -61,6 +61,7 @@ func (s *Source) FindByTOC(toc metadata.TOC) (results []*metadata.Album) { if err != nil { return nil } + defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { return nil @@ -96,6 +97,7 @@ func (s *Source) FindByTOC(toc metadata.TOC) (results []*metadata.Album) { if err != nil { continue } + defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { continue @@ -204,6 +206,7 @@ func (s *Source) FindQueryArguments(queryArgs string) (albums []*metadata.Album) if err != nil { return nil } + defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { return nil @@ -265,6 +268,7 @@ func (s *Source) GetAlbumInformation(id int) *metadata.Album { if err != nil { return nil } + defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { return nil