Skip to content

gonic v0.16.0

Compare
Choose a tag to compare
@github-actions github-actions released this 09 Oct 22:23
· 0 commits to d839959301de4400cc6f02c98946157b7101b71a since this release
422a4b8

Highlights

  • support for multi valued tags such as albumartists and genres found in audio metadata

    • this means a cleaner artist list, and the ability to find the same album by multiple artists in their respective artist pages
    • since there is no longer a direct relationship between guessed "artist dir" and album dir, a side effect of this change is that support for local artist covers on the filesystem has been dropped. however, last.fm artist images are working now
    • use a nice client like airsonic-refix for a nice experience when clicking artist names too
      image
    • see the readme for more details
  • much improved last.fm artist covers and info situation

    • full artist covers from last.fm are fetched and rendered
    • artist bio responses from last.fm are cached so visiting artist pages should be much snappier
  • playlists (including tracks and podcast episodes) are now backed by m3u files instead of the gonic database

    • this means having gonic playlists can be parsed and generated by external tools, we get import and export for free, and solves an issue of playlist entry pointers having ephemeral ids during rescans
    • (you will need to add a new playlist directory when starting gonic, the old database entries will be migrated)
  • closer integration and collaboration with the @opensubsonic project

  • a new experimental tool gonic-lastfm-sync for bidirectional sync of lastfm and gonic data

  • many more features and fixes. see the granular changelog below

⚠ BREAKING CHANGES

  • build: bump to go 1.21
  • subsonic: drop support for guessed artist covers in filesystem
  • playlists-path option now required to start

Features

  • add .wav to list of supported audio types (#322) (ab07b87)
  • add option for /debug/vars endpoint to expose database and media stats (2a7a455), closes #372 #150
  • add support for wavpack (#380) (827baf2)
  • admin: sort transcode profile names (ae5bc2e), closes #288
  • admin: support application/x-mpegurl playlist uploads (6aa4c42), closes #282
  • admin: update stylesheet (222256c)
  • allow multi valued tag modes to be configurable (8f6610f)
  • ci: add a bunch more linters (e3dd812)
  • ci: update checkout and setup-go actions (#326) (6144ac7)
  • ci: update golangci-lint and action (#325) (85eeb86)
  • contrib: improve system related contrib files (ac74b35)
  • enable profile-guided optimization (e842b89)
  • lastfm: add user get loved tracks method (9026c9e)
  • podcast: parse podcast episode descriptions from HTML to plain text (#351) (7d2c4fb)
  • scanner: add a new option for excluding paths based on a regexp (1d38776)
  • scanner: support more cover types (906164a)
  • scanner: support non lowercase extensions like .Mp3 (d83fe56)
  • store and use m3u files on filesystem for playlists (7dc9575), closes #306 #307 #66
  • subsonic: add getOpenSubsonicExtensions endpoint and openSubsonic response key (2caee44)
  • subsonic: add support for multi-valued album artist tags (3ac7782)
  • subsonic: add support for podcast episodes in both playlists and play queues (aecee3d)
  • subsonic: cache and use lastfm responses for covers, bios, top songs (c374577)
  • subsonic: change frequent album list to use total time played per album instead of play count. (#331) (7982ffc)
  • subsonic: drop support for guessed artist covers in filesystem (657fb22)
  • subsonic: expose all album genres in a list of subsonic api (749233d)
  • subsonic: fetch artist images from lastfm opengraph (4757495), closes #295
  • subsonic: gracefully handle missing podcast episode paths when returning playlists (d5f8e23)
  • subsonic: improve search2 and search3 when there are multiple words searched on. (#335) (cbab68b)
  • subsonic: make it easier to add more tag reading backends (8382f61)
  • subsonic: order results from getStarred reverse chronologically based on star date (b3c863c)
  • subsonic: return artist cover ids for similar artists response (c15349f)
  • subsonic: scrobble to different scrobble backends in parallel (1ea2402)
  • subsonic: support timeOffset in stream.view (#384) (7eaf602)
  • subsonic: update track play stats on scrobble instead of stream (e0b1603)
  • sunsonic: expose type serverVersion in subsonic responses (b8fceae)
  • tags: support multi valued tags like albumartists (623d5c3)
  • transcode: add MP3 320 transcoding profile (#363) (a644f0f)
  • transcode: add opus 192 profile (5dcc8c1)
  • transcode: lock the destination transcode cache path (c9a2d2f)

Bug Fixes

  • admin: continue on track match error (16e6046)
  • podcasts: make sure we use safeFilename for podcast episodes too (#339) (5fb9c49)
  • podcasts: remove query parameters from URL when getting the extension (19be6f0)
  • scanner: fix watcher panic (78d0c52)
  • scanner: remove redundant mod time look up (e0a8c18), closes #293
  • subsonic: only return one bookmark entry per row in getBookmarks (efe72fc), closes #310

Miscellaneous Chores