Commit Graph

70 Commits

Author SHA1 Message Date
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
sentriz
e966fffc21 set journal WAL in connection string, not command 2020-04-24 20:18:29 +01:00
sentriz
256143a025 move senan.xyz/g/ to go.senan.xyz 2020-04-02 16:46:04 +01:00
sentriz
be3cf9a04e transcode pref: use uniq user & client, not client & profile
closes #48
2020-03-24 16:00:32 +00:00
sentriz
22992c9941 fixup! run gofumpt / format comments / comment blocks 2020-03-20 02:48:51 +00:00
sentriz
3a8e5b9205 run gofumpt / format comments / comment blocks 2020-03-12 15:17:36 +00:00
sentriz
14481aab87 use user selected profile for transcoding 2020-03-12 13:31:16 +00:00
sentriz
55bdc2884b add crud for custom transcode selection profile 2020-03-12 13:31:15 +00:00
sentriz
29e9abc1d4 scrobble with brainz trackid, not album id 2020-03-12 13:28:27 +00:00
Duncan Overbruck
f03b615583 db: add genres table and genre id column to album and tracks 2020-03-03 13:40:23 +01:00
sentriz
b677af43f0 return more child counts and format sql 2020-02-21 00:00:43 +00:00
sentriz
2c5970d77c update migration order 2020-02-20 00:31:13 +00:00
sentriz
8251f399f8 add init migrattions 2020-02-19 23:00:30 +00:00
sentriz
a42edc3441 move models into db package 2020-02-19 20:08:37 +00:00
sentriz
c84420fa4f implement get and set play queue 2020-02-09 16:50:02 +00:00
sentriz
d9663e5b0a backend: Refactor playlits 2020-02-09 15:57:07 +00:00
sentriz
6193f1b37d add basic playlist 2019-11-24 15:21:58 +00:00
sentriz
310e752015 set PRAGMA=journal_mode=WAL 2019-07-31 15:11:51 +01:00
sentriz
34321ebfff add db tests 2019-07-08 13:00:02 +01:00
sentriz
fd940cfc9c clean up scanner order and surface 2019-07-08 11:47:26 +01:00
sentriz
51b6565b91 use vanity url 2019-07-06 19:28:03 +01:00
sentriz
b6b3043765 move get funcs to db 2019-07-06 13:49:30 +01:00
sentriz
dbe7f1fb62 migrate on both binaries 2019-07-03 13:11:06 +01:00
sentriz
7842600e43 factor db creation to its own package 2019-07-03 11:41:02 +01:00
sentriz
ad571ed7ab eg 2019-05-20 14:49:14 +01:00
sentriz
5c657d9630 cleanup 2019-05-17 13:14:51 +01:00