Commit Graph

924 Commits

Author SHA1 Message Date
Gregor Zurowski
78c7fbe493 add VSCode .devcontainer to Git ignore list (#348) 2023-08-13 21:33:16 +00:00
archekb
8f05f33ab8 subsonic: make homepageURL parameter optional
By the https://opensubsonic.netlify.app/docs/endpoints/createinternetradiostation/ the `homepageURL` is not requirement option
2023-08-02 10:08:49 +00:00
brian-doherty
5fb9c49ed2 fix(podcasts): make sure we use safeFilename for podcast episodes too (#339)
Co-authored-by: Brian Doherty <brian@mediaserver.dohertyfamily.me>
2023-07-17 10:58:36 +00:00
Senan Kelly
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
Gregor Zurowski
2e879f6f16 add test for LastFM top tracks (#330) 2023-06-29 21:11:57 +00: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
brian-doherty
cbab68b057 feat(subsonic): improve search2 and search3 when there are multiple words searched on. (#335)
Co-authored-by: Brian Doherty <brian@mediaserver.dohertyfamily.me>
2023-06-29 20:59:22 +00:00
brian-doherty
c45c3c9041 rename podcast and podcast episode filenames to be safe at startup. (#337)
Co-authored-by: Brian Doherty <brian@mediaserver.dohertyfamily.me>
2023-06-29 20:58:15 +00:00
sentriz
5e3b8daf96 add lastfm client to subsonic controller 2023-05-22 13:05:34 +01:00
Gregor Zurowski
dbcccdc811 add initial Last.FM tests (#329)
* Move model into separate file

* Separate Last.FM client and scrobbler

* Use separate Last.FM client and scrobbler

* Fix playcount attribute name

* Add initial test for Last.FM client
2023-05-20 11:24:03 +00:00
Gregor Zurowski
6144ac7979 feat(ci): update checkout and setup-go actions (#326)
* Update Github checkout action to v3

* Update Github action setup-go to v4

* Get Go version from `go.mod`
2023-05-19 14:41:20 +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
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