Commit Graph

99 Commits

Author SHA1 Message Date
sentriz
42dbfa7a85 fix(subsonic): return error code 70 for not found errors in more places
fixes #454
2024-01-14 12:18:31 +00:00
sentriz
eb79cecc44 fix(scanner): gracefully handle multi value tag delim splits with adjacent delimiters
closes #448

Co-authored-by: Chris Hayes <chayes@interrobang.sh>
2024-01-02 23:10:11 +00:00
Philipp Wolfer
552aa3afb1 feat(listenbrainz): submit release MBID (#443) 2023-12-29 19:20:14 +00:00
sentriz
e8ae1c1d40 feat(subsonic): return http form post opensubsonic extension key
https://github.com/opensubsonic/open-subsonic-api/pull/74

Release-As: 0.16.3
2023-12-03 01:38:28 +00:00
sentriz
def59f17dd chore(jukebox): gracefully handle jukebox request when not enabled 2023-11-25 14:36:58 +00:00
sentriz
c55339e19a return no entries when out of bounds musicFolderId is requested 2023-11-08 23:17:19 +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
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
48eadd05e3 don't scrobble podcast episodes 2023-10-25 10:42:23 +01:00
Senan Kelly
7eaf602e69 feat(subsonic): support timeOffset in stream.view (#384)
as per
https://github.com/opensubsonic/open-subsonic-api/pull/54
https://github.com/opensubsonic/open-subsonic-api/discussions/21

dont cache partial transcodes

add a transcode seek test
2023-10-08 16:10:49 +00:00
sentriz
1ea2402559 feat(subsonic): scrobble to different scrobble backends in parallel 2023-10-05 12:23:57 +01:00
Senan Kelly
e9accfb71f refactor: refactor controllers and use standard library (#385) 2023-09-30 21:40:51 +00:00
sentriz
adceff1267 use new opensubsonic extensions response format 2023-09-30 22:24:16 +01:00
sentriz
2caee441ca feat(subsonic): add getOpenSubsonicExtensions endpoint and openSubsonic response key 2023-09-28 21:17:56 +01:00
sentriz
e0b1603c00 feat(subsonic): update track play stats on scrobble instead of stream 2023-09-28 20:58:59 +01:00
Senan Kelly
f119659acf refactor scrobblers (#383)
- no need to explicitly pass api key
- move packages up a level
- catch more errors by extended scrobbler interface with IsUserAuthenticated
- move interface to server
- delete scrobbber package, clients implicitly satisfy Scrobble

this also helps with gonic-lastfm-sync
2023-09-27 00:13:00 +00:00
Senan Kelly
33f1f2e0cf refactor podcast schema and generate unique episode paths (#373)
closes #350
2023-09-20 23:01:16 +00:00
sentriz
d9d234d826 show transcode meta info in more places 2023-09-14 23:56:56 +01:00
sentriz
0eb5add1a0 delete multierr 2023-09-14 01:09:57 +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
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
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
0407a1581f feat(subsonic): add stub lyrics.view
fixes #274
2022-12-26 01:54:44 +00:00
sentriz
c6ddee8f7e fix(subsonic): update music folder id in bounds check
fixes #271
2022-12-12 20:02:28 +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
e1488b0d18 feat(jukebox): use mpv over ipc as a player backend 2022-11-16 19:40:40 +00:00
sentriz
131e56b3e6 refactor(subsonic): don't make getMusicFolder a method of ctrl 2022-11-02 22:21:19 +00:00
dertasiu
6e6404af73 feat(subsonic): return transcoded mime and transcoded suffix in subsonic responses
fixes #106

* Added support to TranscodedContentType and TranscodedSuffix

* Make sure that we have a profile

* Fix linting

* Fixed use of NewTCTrackByFolder instead of NewTrackByTags in handlers_by_tags.go

simplify a bit
2022-11-02 22:17:29 +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
d47d5e17e9 fix(subsonic): return an error when no tracks provided in savePlayQueue 2022-10-08 17:23:12 +01:00
sentriz
bfb91c9e92 fix play queue query 2022-09-22 00:23:58 +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
sentriz
8b803ecf20 refactor: move shared packages up a level 2022-04-13 01:10:46 +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
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
10e8d18a0f refactor: return scan context from scanner 2022-02-24 19:15:37 +00:00
xavier
39b3ae5ecb feat(subsonic): implement getTopSongs.view
closes #195
2022-02-10 12:34:34 +00:00
sentriz
7ec6440ed2 fix: render artistId in track types
fixes #170
2021-11-12 20:14:57 +00:00
Senan Kelly
96f693f4e4 make musicFolderIds ints (#169)
* make `musicFolderId`s ints

https://github.com/sentriz/gonic/issues/50#issuecomment-963257103
006c1dafee/Classes/Models/API%20Models/MediaFolder.swift (L16)

related #50

* add a test for multi folders and reused artists
2021-11-09 00:23:32 +00:00
sentriz
40cd031b05 feat: add multi folder support
closes #50
2021-11-06 21:56:01 +00:00
sentriz
fa587fc7de refactor: update scanner, scanner tests, mockfs
closes #165
closes #163
2021-11-06 21:55:46 +00:00
sentriz
98cab93557 add some logging to ServeScrobble 2021-11-05 17:37:55 +00:00
sentriz
c31b3b8d1f use time.Time in scrobbler interface 2021-10-13 06:30:14 +01:00
sentriz
82d8a57aab log scrobbling errors
related https://github.com/sentriz/gonic/issues/162
2021-10-12 19:00:35 +01:00
sentriz
b17ce76a72 Set getUser.view jukebox/podcast role
closes #130
2021-04-18 12:34:54 +01:00
sentriz
7a1d57a43c support subsonic bookmarks 2021-02-03 22:55:05 +00:00