diff --git a/lib/sc/playlist.go b/lib/sc/playlist.go index 0ce534b..57f60df 100644 --- a/lib/sc/playlist.go +++ b/lib/sc/playlist.go @@ -86,16 +86,21 @@ func SearchPlaylists(args string) (*Paginated[*Playlist], error) { func (p *Playlist) Fix(cached bool) error { if cached { for _, t := range p.Tracks { - t.Fix() + t.Fix(false) } err := p.GetMissingTracks() if err != nil { return err } + + p.Artwork = strings.Replace(p.Artwork, "-large.", "-t500x500.", 1) + } else { + p.Artwork = strings.Replace(p.Artwork, "-large.", "-t200x200.", 1) } - p.Artwork = strings.Replace(p.Artwork, "-large.", "-t200x200.", 1) + p.Author.Fix(false) + return nil } diff --git a/lib/sc/track.go b/lib/sc/track.go index 1d7b8d4..6f23c12 100644 --- a/lib/sc/track.go +++ b/lib/sc/track.go @@ -98,7 +98,7 @@ func GetTrack(permalink string) (Track, error) { return t, ErrKindNotCorrect } - t.Fix() + t.Fix(true) tracksCacheLock.Lock() tracksCache[permalink] = cached[Track]{Value: t, Expires: time.Now().Add(cfg.TrackTTL)} @@ -120,7 +120,7 @@ func SearchTracks(args string) (*Paginated[*Track], error) { } for _, t := range p.Collection { - t.Fix() + t.Fix(false) } return &p, nil @@ -155,7 +155,7 @@ func GetTracks(ids string) ([]*Track, error) { var res []*Track err = cfg.JSON.Unmarshal(data, &res) for _, t := range res { - t.Fix() + t.Fix(false) } return res, err } @@ -208,14 +208,20 @@ func (t Track) GetStream() (string, error) { return s.URL, nil } -func (t *Track) Fix() { - t.Artwork = strings.Replace(t.Artwork, "-large.", "-t200x200.", 1) +func (t *Track) Fix(large bool) { + if large { + t.Artwork = strings.Replace(t.Artwork, "-large.", "-t500x500.", 1) + } else { + t.Artwork = strings.Replace(t.Artwork, "-large.", "-t200x200.", 1) + } if t.ID == "" { t.ID = strconv.FormatInt(t.IDint, 10) } else { ls := strings.Split(t.ID, ":") t.ID = ls[len(ls)-1] } + + t.Author.Fix(false) } func (t Track) FormatDescription() string { @@ -282,7 +288,7 @@ func GetTrackByID(id string) (Track, error) { return t, ErrKindNotCorrect } - t.Fix() + t.Fix(true) tracksCacheLock.Lock() tracksCache[t.Permalink] = cached[Track]{Value: t, Expires: time.Now().Add(cfg.TrackTTL)} diff --git a/lib/sc/user.go b/lib/sc/user.go index 00d4668..fb75712 100644 --- a/lib/sc/user.go +++ b/lib/sc/user.go @@ -52,7 +52,7 @@ func GetUser(permalink string) (User, error) { return u, err } - u.Fix() + u.Fix(true) usersCacheLock.Lock() usersCache[permalink] = cached[User]{Value: u, Expires: time.Now().Add(cfg.UserTTL)} @@ -74,7 +74,7 @@ func SearchUsers(args string) (*Paginated[*User], error) { } for _, u := range p.Collection { - u.Fix() + u.Fix(false) } return &p, nil @@ -91,7 +91,7 @@ func (u User) GetTracks(args string) (*Paginated[Track], error) { } for _, u := range p.Collection { - u.Fix() + u.Fix(false) } return &p, nil @@ -120,8 +120,12 @@ func (u User) FormatUsername() string { return res } -func (u *User) Fix() { - u.Avatar = strings.Replace(u.Avatar, "-large.", "-t200x200.", 1) +func (u *User) Fix(large bool) { + if large { + u.Avatar = strings.Replace(u.Avatar, "-large.", "-t500x500.", 1) + } else { + u.Avatar = strings.Replace(u.Avatar, "-large.", "-t200x200.", 1) + } ls := strings.Split(u.ID, ":") u.ID = ls[len(ls)-1] }