Commit Graph

95 Commits

Author SHA1 Message Date
sentriz
0e45f5e84c feat(subsonic): expose replaygain tags 2024-05-30 11:43:45 +01:00
sentriz
6ce1fe5a7e a 2024-03-11 19:10:53 +01:00
sentriz
ec55f3b22a feat(subsonic): return playCount in album responses
closes #458
2024-01-18 21:10:48 +00:00
Senan Kelly
f34cd2e213 fix(podcast): slightly more robust downloading and concurrency (#433) 2023-12-21 03:20:22 +00:00
sentriz
d640a9fc06 fix(db): add double index for right side of unique compound indexes
fixes #426
2023-12-11 00:08:05 +00:00
sentriz
50c90e8ee3 set a temporary album tag artist for those who mightn't have it yet 2023-11-08 23:05:16 +00:00
sentriz
cc1a99f033 feat(subsonic): add getAlbumInfo with cache
Release-As: 0.16.1
2023-11-07 23:43:11 +00:00
sentriz
98eb1066d8 store artist album appearances 2023-11-06 23:40:00 +00:00
sentriz
288b457c19 remove unneeded many 2 many params 2023-11-06 21:50:25 +00:00
sentriz
27b2d36376 update transaction funcs 2023-11-04 19:03:28 +00:00
sentriz
2fdc1f41a2 feat: add more and unify stats
Release-As: 0.16.1
2023-10-31 19:14:08 +00:00
sentriz
c1a34dc021 feat: store and expose individual track artists
a
2023-10-31 19:14:08 +00:00
sentriz
fe0567a995 fix: store and scrobble with real album artist info string 2023-10-25 22:09:04 +01:00
sentriz
46575278ed refactor: remove album.GenreStrings 2023-10-25 21:59:56 +01:00
sentriz
d503282faf don't panic when we can't find an old podcast episode path in migration
related #393
2023-10-18 20:09:38 +01:00
sentriz
80fdc85b60 don't backup db for tests 2023-10-10 16:56:37 +01:00
sentriz
f18151b755 fix(subsonic): don't return concatenated genres strings for song/trackchilds 2023-10-10 16:56:37 +01:00
sentriz
422a4b88d7 use db.Transaction helper for migrations 2023-10-09 23:32:07 +01:00
sentriz
e624813d5c backup db pre 0.16 release 2023-10-09 21:52:14 +01:00
sentriz
66a29f7e93 move mockfs DumpDB to db package 2023-10-09 21:50:34 +01:00
sentriz
8382f6123c feat(subsonic): make it easier to add more tag reading backends
related https://github.com/sentriz/gonic/issues/379
related https://github.com/sentriz/gonic/issues/324
related https://github.com/sentriz/gonic/issues/244
2023-10-02 20:02:56 +01:00
sentriz
ae82153d79 put helpers last 2023-10-01 03:20:03 +01:00
Senan Kelly
39fb8e7d54 use package level require/assert in tests (#382) 2023-09-25 17:39:39 +00:00
sentriz
e3dd812b6c feat(ci): add a bunch more linters 2023-09-22 19:05:55 +02:00
Senan Kelly
33f1f2e0cf refactor podcast schema and generate unique episode paths (#373)
closes #350
2023-09-20 23:01:16 +00:00
sentriz
12c31cd334 use an enum for db settings 2023-09-14 00:51:40 +01:00
sentriz
df2c0707dd only return artist cover art if we have cached it 2023-09-14 00:34:01 +01:00
sentriz
c374577328 feat(subsonic): cache and use lastfm responses for covers, bios, top songs 2023-09-13 21:30:57 +01:00
sentriz
ddd160545c use comma when joining artists 2023-09-10 16:48:06 +01:00
sentriz
657fb221db feat(subsonic)!: drop support for guessed artist covers in filesystem
it doesn't make sense with multi-artist support anymore

gonic will use lastfm or an album cover instead

Release-As: 0.16.0
2023-09-10 16:16:04 +01:00
sentriz
3ac77823c3 feat(subsonic): add support for multi-valued album artist tags
closes #103

a

a

a

r

a

a

a

a

a

a

a

a

a

a
2023-09-10 14:05:32 +01:00
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
sentriz
c5cac5b987 auto migrate plays before migration 2023-06-30 16:12:42 +01:00
brian-doherty
7982ffc0b4 feat(subsonic): change frequent album list to use total time played per album instead of play count. (#331)
Co-authored-by: Brian Doherty <brian@mediaserver.dohertyfamily.me>
2023-06-29 21:11:15 +00:00
Gregor Zurowski
85eeb860bf feat(ci): update golangci-lint and action (#325)
* Update linter

- Update Github golangci-lint-action to v3
- Update golangci-lint to v1.52.2

* Fix linter issues after updating to linter 1.52.2
2023-05-19 12:05:14 +00:00
Gregor Zurowski
b7a50ee9cb use testify for all tests (#319)
* Use Testify for all tests

* Terminate failing non-relaxed tests using `require`
2023-05-13 15:17:37 +00: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 Kelly
74de06430a refactor: consolidate specid <-> filesystem mapping and always use abs paths (#309) 2023-04-22 17:23:17 +00:00
Brian Doherty
aecee3d2d8 feat(subsonic): add support for podcast episodes in both playlists and play queues 2023-02-19 17:56:45 +00:00
sentriz
8dc58c71a4 fix(subsonic): send valid content-type with http.ServeStream 2022-12-27 23:10:20 +00:00
sentriz
986fcd2270 use a switch/case for get mime 2022-11-16 19:40:40 +00:00
sentriz
1f8de66fc0 2022-11-03 15:27:59 +00:00
brian-doherty
e8759cb6c1 feat(subsonic): add support for track/album/artist ratings/stars
fixes #171
fixes #31

* Initial code. Compiles and passes unit tests.

* Moved average rating calculation from rating fetch to set rating function. Still only compiled and unit tested.

* Bug fixes

* Fixed bug in savePlayQueue. Removed unique_index for star / rating entries because it's not valid.

* Changed time format on stars to RFC3339Nano to match created date format.

* Lint fixes.

* More lint fixes.

* Removed add* functions and replaced with Preload.

* Fixed several bugs in handlers for getStarred and getStarred2.

* Fixed bug when using music folder ID.

Co-authored-by: Brian Doherty <brian@hplaptop.dohertyfamily.me>
2022-10-26 14:37:16 +01: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
Brian Doherty
5e66261f0c feat(subsonic): add avatar support
closes: #228
2022-07-20 23:18:35 +01:00
brian-doherty
7ab378accb feat(subsonic): add internet radio support
* Initial commit of internet radio support.

* Added first test for internet radio.

* Refactor to prepare for more test cases.

* Added a few more tests. Realized that I was not calling as admin so added ability to mock admin.

* Added more internet radio tests. Added proper JSON unmarshaling for ID.

* More test cases. Fixed some accidental tabs in files.

* Fixed some more tabs.

* lint fixes

* Changed placeholder for homepage URL to fit into box.

* Finished out internet radio test cases. Found a few bad error codes in internet radio AND podcasts (mea culpa).

* Realized that delete via website was not checking properly if id existed. Fixed.

gofmt
2022-06-21 22:33:21 +01:00
brian-doherty
182c96e966 refactor(podcast)!: make podcasts global not per user, to match spec
Release-As: 0.15.0
2022-05-03 22:42:03 +01:00
brian-doherty
f6687df3f3 feat(subsonic): add getNewestPodcasts 2022-04-21 20:13:47 +01:00
sentriz
8b803ecf20 refactor: move shared packages up a level 2022-04-13 01:10:46 +01:00
sentriz
f52ce807af upgrade sqlite3 2020-04-25 01:55:46 +01:00