Commit Graph

911 Commits

Author SHA1 Message Date
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
Peter Nordin
ab07b876b8 feat: add .wav to list of supported audio types (#322) 2023-05-13 20:42:38 +00:00
Gregor Zurowski
5363beb031 fix names in ListenBrainz tests (#321)
* Rename test data file

* Rename require instance
2023-05-13 16:27:49 +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
Gregor Zurowski
bb8507a72f add unit tests for ListenBrainz scrobbler (#317)
* Access HTTP client via interface to allow for testing

* [Minor] Fix typo

* Add initial test cases for ListenBrainz scrobbler

* Fix linter error for insecure TLS in tests

* Use Testify for unit tests

* Move model into separate file

* Embed JSON responses into tests

* [Minor] Fix test function names
2023-05-13 12:10:11 +00:00
Gregor Zurowski
05b2b469dc revert "add playlists directory to docker volumes" (#316)
This reverts commit aae0683671.
2023-05-09 20:19:56 +00:00
Gregor Zurowski
aae0683671 add playlists directory to docker volumes
Add the `/playlists` directory to the list of volumes, so
the server doesn't exit when validating the playlist path
on startup.
2023-05-07 16:29:49 +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
Gregor Zurowski
1d3877668f feat(scanner): add a new option for excluding paths based on a regexp
* Exclude paths based on new exclude pattern option

* Add test for excluded paths

* Add exclude pattern option to docs

* Set exclude regexp only if given argument is set

* Update scanner/scanner.go

---------

Co-authored-by: Senan Kelly <senan@senan.xyz>
2023-05-06 17:03:11 +00:00
Senan Kelly
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
Zoltan Puskas
4ecc1e1285 docs: update tested player list in README (#305)
- Sublime music: update link as it has moved to GitHub
- Add Strawberry music player (Clementine fork) for QT and KDE desktops
- Add Ultrasonic Android app
2023-03-11 13:52:40 +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
Zoltan Puskas
ac74b35465 feat(contrib): improve system related contrib files
Make example configuration self documenting

Most services on *nix type systems have configuration files that are
self documenting. This usually entails:
- listing all configuration options with some sane default values
- commenting out options that do not need to be set or match the binary
  default value
- some explanatory comments where needed

This simplifies management of the service as configuration can be
understood and modified in place without having to open up the internet.

This diff also groups settings into logical blocks:
- basic server settings
- directory settings
- behavioural settings

Improve contrib system file behaviour

This diff improves gonic serive files in the following way:
- Define a sane default for gonig cache, which will map well to
  established cache paths on most Linux systems
- Update service file to use StateDirectory=, CacheDirectory= directives
  to create /var/lib/gonic and /var/cache/gonic directories respectively
- Add a tmpfilesd sample configuration that will automatically clean
  cache files if they are older than 7 days
- Add sysysers configuration file that can be used in sysusers.d to
  create relevant gonic user and group during installation.
2023-02-22 10:47:39 +00:00
Zoltan Puskas
5dcc8c18a1 feat(transcode): add opus 192 profile
This diff adds the 192kbps OPUS transcoding profile named
opus_audiophile. While 128kbps is already near transparent and good
for most use cases, sometimes (or by some people) a bit more is preferred.
These are typically for dedicated high quality wireless audio link
(A2DP-bluetooth) enabled headphones and Hi-Fi adapters.

The 160-192kbps range is considered to be transparent with very low
chance of artifacts (only with very few and specific samples)[1][2].

[1] https://wiki.hydrogenaud.io/index.php?title=Opus
[2] https://ceur-ws.org/Vol-2654/paper25.pdf
2023-02-22 10:34:49 +00:00
sentriz
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
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
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
Dmitry Rubtsov
78d0c52d22 fix(scanner): fix watcher panic 2023-02-17 12:24:24 +00:00
Alex McGrath
19be6f0881 fix(podcasts): remove query parameters from URL when getting the extension 2023-01-23 11:02:46 +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
github-actions[bot]
2f4ea6caa8 chore: release 0.15.2 2022-12-27 23:24:37 +00:00
sentriz
8dc58c71a4 fix(subsonic): send valid content-type with http.ServeStream 2022-12-27 23:10:20 +00:00
github-actions[bot]
63f7b05b07 chore: release 0.15.1 2022-12-26 01:59:30 +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
Alex McGrath
2bc3f31554 feat(scrobble): only send musicbrainz id if it's a valid uuid
since some people may have a non musicbrainz uuid in the tag's place. eg with the discogs/lastfm plugins for beets.io
2022-12-08 17:39:01 +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
github-actions[bot]
92a73b2d61 chore: release 0.15.0 2022-11-17 19:56:45 +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