Commit Graph
100 Commits
Author SHA1 Message Date
sentriz 5700558a3f swap order of require.Equal() args
we had the order of require.Equal() arguments mixed up. it should be
(expected, actual) not the other way around

updated with

    find . -name "*_test.go" -exec gofmt -r "require.Equal(a, b) -> require.Equal(b, a)" -w '{}' \+
2023-08-15 22:38:38 +01:00
Senan KellyandGitHub b4df1fa3f6 Update README.md 2023-07-10 12:50:34 +00:00
sentriz 637aae9b36 make getTopSongs return an empty list when there's no results
https://github.com/tamland/airsonic-refix/issues/99
2023-07-10 13:25:13 +01:00
sentriz c5cac5b987 auto migrate plays before migration 2023-06-30 16:12:42 +01:00
sentriz 5e3b8daf96 add lastfm client to subsonic controller 2023-05-22 13:05:34 +01:00
sentriz 7dc9575e52 feat: store and use m3u files on filesystem for playlists
closes #306
closes #307
closes #66
2023-05-06 18:42:52 +01:00
Senan KellyandGitHub 74de06430a refactor: consolidate specid <-> filesystem mapping and always use abs paths (#309) 2023-04-22 17:23:17 +00:00
sentriz efe72fc447 fix(subsonic): only return one bookmark entry per row in getBookmarks
fixes #310

https://gitlab.com/ultrasonic/ultrasonic/-/issues/1113
2023-04-21 22:46:59 +01:00
sentriz d83fe560d3 feat(scanner): support non lowercase extensions like .Mp3
https://github.com/sentriz/gonic/issues/308#issuecomment-1505650896
2023-04-12 19:04:55 +01:00
sentriz b8fceae383 feat(sunsonic): expose type serverVersion in subsonic responses
https://opensubsonic.netlify.app/docs/responses/subsonic-response/
https://github.com/opensubsonic/open-subsonic-api/discussions/3
2023-04-08 01:27:40 +01:00
sentriz 3974b0d844 docs: add airsonic-refix 2023-03-11 13:54:07 +00:00
sentriz 906164a5de feat(scanner): support more cover types
like bmp gif, and also files like folder.1.jpg like beets can create sometimes
2023-03-10 17:10:14 +00:00
sentriz 4ca9dbe320 skip flakey test 2023-03-10 17:10:14 +00:00
sentriz a2f70f4059 chore(ci): update linters 2023-03-10 17:10:14 +00:00
sentriz 222256cccb feat(admin): update stylesheet 2023-03-04 13:22:33 +00:00
sentriz 16e6046e85 fix(admin): continue on track match error 2023-02-23 19:15:49 +00:00
sentrizandcacko 475749534f feat(subsonic): fetch artist images from lastfm opengraph
closes #295

Co-authored-by: cacko <alex@cacko.net>
2023-02-20 22:03:58 +00:00
sentriz ae5bc2e149 feat(admin): sort transcode profile names
fixes #288
2023-02-19 17:40:30 +00:00
sentriz e0a8c18b8d fix(scanner): remove redundant mod time look up
fixes #293
2023-02-19 17:36:28 +00:00
sentriz 6aa4c42ce5 feat(admin): support application/x-mpegurl playlist uploads
closes #282
2023-01-23 10:59:46 +00:00
sentriz 7e917d0a08 chore(ci): don't use set-output 2022-12-28 01:22:58 +00:00
sentriz 832fd02c53 chore(ci): don't build nightly image unless code as changed
fixes #258
2022-12-28 01:00:00 +00:00
sentriz 8dc58c71a4 fix(subsonic): send valid content-type with http.ServeStream 2022-12-27 23:10:20 +00:00
sentriz 0407a1581f feat(subsonic): add stub lyrics.view
fixes #274
2022-12-26 01:54:44 +00:00
sentriz 2bf8595d96 calculate lastfm param signature last 2022-12-13 10:59:21 +00:00
sentriz df932864d8 feat(server): recover from panics 2022-12-12 21:57:23 +00:00
sentriz c6ddee8f7e fix(subsonic): update music folder id in bounds check
fixes #271
2022-12-12 20:02:28 +00:00
sentriz ce31310571 fix(transcode): don't leave half transcode cache files lying around
fixes #270
2022-12-12 18:56:20 +00:00
sentriz b47c880ea5 fix(jukebox): gracefully handle case of no audio in feed item
fixes #269
2022-12-12 18:31:07 +00:00
sentriz 4280700621 fix(jukebox): use a tmp dir instead of file for mpv sock
closes #266
fixes #265

Release-As: 0.15.1
2022-12-08 14:37:16 +00:00
sentriz 6c8f6b3299 enable download role for all users
since we don't have any permission checks on download.view anyway

closes #264
2022-12-04 22:02:48 +00:00
sentriz 7e097c9bdf feat: allow for custom music folder path alias
closes #259
2022-11-21 20:51:26 +00:00
sentriz 3348ca6b5b feat(ui): add a link to wiki in transcode profile section
closes #254
2022-11-17 19:23:29 +00:00
sentriz 428fddad1b feat(jukebox): allow users to pass custom arguments to mpv
fixes #125
fixes #164
2022-11-16 20:11:35 +00:00
sentriz 44800e964d add check for mpv version 2022-11-16 19:40:40 +00:00
sentriz e1488b0d18 feat(jukebox): use mpv over ipc as a player backend 2022-11-16 19:40:40 +00:00
sentriz ec97289d45 remove PCM options from transcode packages
as it turns out we won't need it
2022-11-16 19:40:40 +00:00
sentriz 7ab1612802 use os's path separator for playlist parse query 2022-11-16 19:40:40 +00:00
sentriz 986fcd2270 use a switch/case for get mime 2022-11-16 19:40:40 +00:00
sentriz 385a980b71 chore!: upgrade deps and require go 1.19 2022-11-16 19:40:40 +00:00
sentriz ba283021c1 print artist name instead of object in lastfm tracks error 2022-11-14 14:06:11 +00:00
Senan KellyandGitHub b7bf8cb70b update readme 2022-11-08 00:09:32 +00:00
sentriz 064bd587a8 update replaygain transcode profiles 2022-11-03 16:51:13 +00:00
sentriz 1f8de66fc0 2022-11-03 15:27:59 +00:00
sentriz 5c6855f671 update opus profiles output suffix and update aresample filter bitrate
related #250
2022-11-03 15:23:09 +00:00
sentriz 131e56b3e6 refactor(subsonic): don't make getMusicFolder a method of ctrl 2022-11-02 22:21:19 +00:00
sentriz b332ce8285 delete left over albums count query in getStarred2 2022-10-26 23:49:17 +01:00
Senan Kelly 25b39085d8 add FUNDING.yml 2022-10-18 22:26:08 +01:00
sentriz e4756aa560 reset scanList to empty map instead of nil 2022-10-12 18:14:47 +01:00
sentriz d47d5e17e9 fix(subsonic): return an error when no tracks provided in savePlayQueue 2022-10-08 17:23:12 +01:00
sentriz 8ee357b021 fix(listenbrainz): submit track recording ID instead of track ID
closes #240
2022-10-08 16:09:22 +01:00
sentriz bb83426816 feat(transcode): add opus 128 kbps profiles
"Opus at 128 KB/s (VBR) is pretty much transparent"

https://wiki.xiph.org/Opus_Recommended_Settings

related #241
2022-09-22 13:10:56 +02:00
sentriz bfb91c9e92 fix play queue query 2022-09-22 00:23:58 +01:00
sentriz f41dd0818b feat(subsonic): skip transcoding if request bitrate is the same as track bitrate
fixes #241
2022-09-22 01:18:58 +02:00
sentriz fdbb28209b fix(scanner): fix records with album name same as artist
and never use db.Where() with a struct

gorm was seeing a query like

    db.Where(Album{Left: left, Right: right})

but if the `left` variable was empty, gorm couldn't differentiate it with an empty field in the struct
so it generated SQL that we weren't expected

like

    SELECT * FROM albums WHERE right=?

instead of

    SELECT * FROM albums WHERE left=? AND right=?

fixes #230
2022-09-09 13:09:06 +01:00
sentriz 7d0d036f0b feat(lastfm): scrobble with duration 2022-09-06 17:48:56 +01:00
sentriz 6c94f194df rewrite "" search queries as `` 2022-07-22 14:13:01 +01:00
sentriz de540966bc add a note about symfonium.app to the readme 2022-07-21 20:18:54 +01:00
sentriz 1a1f39f4e8 fix(subsonic): return song artist ID, album and song genres from search3
related: #229
2022-07-21 19:58:26 +01:00
sentriz 4557a4ec33 rewrite "" search queries as ``
closes #229
2022-07-21 14:57:37 +01:00
sentriz a9d393350a fix(scanner): better detect years given extraneous year tags 2022-07-21 13:06:32 +01:00
sentriz 2afc63f64a add a test for updated album genre tags
related #225
2022-05-19 00:49:20 +01:00
sentriz d6d1fe26ba refactor(scanner): remove unused genreIDs arg 2022-05-19 00:46:17 +01:00
sentriz 53a4247dfd feat(subsonic): add year and genre fields to track-by-folder response
fixes #223
2022-05-18 22:01:47 +01:00
sentriz 668c334f45 remove redundant lastfm user session check 2022-05-18 22:01:00 +01:00
sentriz 4fce8e67ce log bad scrobble responses
related #219
2022-05-15 15:02:15 +01:00
sentriz e883de8c95 fix(listenbrainz): set json header
closes #216

related https://github.com/sentriz/gonic/issues/216
related https://github.com/krateng/maloja/issues/141
2022-05-02 14:52:31 +01:00
sentriz dc4d9e4e96 feat(subsonic): add detailed logging about requested audio
closes #212
2022-04-21 01:31:37 +01:00
sentriz 6bebceccd9 delete guess expected size feature
it it doing some really bad guesses for opus files
2022-04-21 00:47:39 +01:00
sentrizandBrian Doherty 4658d07273 fix(lastfm): make a better guess at callback protocol when incoming connection is TLS
closes: #213

Co-authored-by: Brian Doherty <brian.r.doherty@gmail.com>
2022-04-20 23:11:20 +01:00
sentrizandBrian Doherty 611bc96e29 fix(podcast): add error case for when DownloadEpisode is called via API and podcast is already downloaded
closes: #213

Co-authored-by: Brian Doherty <brian.r.doherty@gmail.com>
2022-04-20 23:11:13 +01:00
sentriz 8b803ecf20 refactor: move shared packages up a level 2022-04-13 01:10:46 +01:00
sentriz 165904c2bb feat(transcode): add a generic transcoding package for encoding/decoding/caching 2022-04-13 01:10:46 +01:00
sentriz fd211d706a refactor(countrw): move to iout 2022-04-12 23:38:44 +01:00
sentriz d7655cb9d1 fix(subsonic): change order of fromYear toYear query
closes #208
2022-04-02 18:04:57 +01:00
sentriz 01747c8940 fix(scanner): make sure we have an album artist before populating track
if we return early before i == 0 we mightn't have one

fixes #209
2022-04-02 18:03:14 +01:00
sentriz a8e50c4a01 don't log listenbrainz scrobble errors
we're already logging at the subsonic level
2022-03-24 00:11:11 +00:00
sentriz 2440e69689 feat(subsonic): log error responses 2022-03-23 23:41:31 +00:00
sentriz 78853ed62b format dockerfiles 2022-03-23 23:41:08 +00:00
sentriz f2143e32ef fix(scanner): respect "is full" setting 2022-03-23 20:41:55 +00:00
sentrizandBrian Doherty 1ab47d6fbe feat(subsonic): update play stats when scrobbling
closes: #207

Co-authored-by: Brian Doherty <brian.r.doherty@gmail.com>
2022-03-22 20:39:57 +00:00
sentriz 5155dee2e8 feat(countrw): add countrw package 2022-03-10 00:49:05 +00:00
sentriz c7862761bd support parsing floats 2022-03-10 00:49:05 +00:00
sentriz 74c955b723 refactor: ioutil -> io 2022-03-10 00:49:05 +00:00
sentriz 5420f01089 refactor(mockfs): automatically clean up with t.Cleanup() 2022-03-02 15:19:12 +00:00
sentriz 9d406afb1f refactor(scanner): take seed from fuzzer 2022-03-02 09:30:51 +00:00
sentriz d6492c1521 refactor(scanner): switch ext() path 2022-02-27 20:56:53 +00:00
sentriz e56f64a758 feat(subsonic): sort artist album list
fixes #197
2022-02-25 21:00:24 +00:00
sentriz bb9b52b960 try to save some extra writes of albums 2022-02-25 20:46:42 +00:00
sentriz 401c17b355 add a test for a compilation album without album artist tags
related https://github.com/sentriz/gonic/issues/185
related https://github.com/sentriz/gonic/issues/185#issuecomment-1050092128
2022-02-24 19:15:37 +00:00
sentriz d3d2ed3469 add a test for scan tag errors 2022-02-24 19:15:37 +00:00
sentriz 599636663d support returning errors from mockfs tags 2022-02-24 19:15:37 +00:00
sentriz 19bc7f16aa add test for deleting artists 2022-02-24 19:15:37 +00:00
sentriz f7f4b8b2cc feat(scanner): add fuzzing test 2022-02-24 19:15:37 +00:00
sentriz 10e8d18a0f refactor: return scan context from scanner 2022-02-24 19:15:37 +00:00
sentriz b0d5861d10 feat(mockfs): add DumpDB method 2022-02-24 19:15:37 +00:00
Senan Kelly 4176b9e9d4 Update README.md 2022-02-18 02:24:46 +00:00
sentriz c69d45fd4e run migrateAlbumRootDir again 2022-02-12 18:11:32 +00:00
sentriz 3dc838d36f delete old album index even if we found the new one
fixes #190
2022-02-12 16:53:06 +00:00
sentriz e64524e09e remove debug sql print 2022-02-12 14:10:59 +00:00