Commit Graph

91 Commits

Author SHA1 Message Date
sentriz
0f611d7f7a use track artists and album artists more appropriately
for example using track artists to find top songs, and returning artist
features in artist album lists
2023-11-07 22:49:43 +00:00
sentriz
98eb1066d8 store artist album appearances 2023-11-06 23:40:00 +00:00
sentriz
ddb686bddc fix(scanner): make sure we roll back invalid parents
fixes #402
2023-11-04 19:04:30 +00:00
sentriz
27b2d36376 update transaction funcs 2023-11-04 19:03:28 +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
Senan Kelly
c947404923 refactor(scanner): make the watcher a little easier to reason about (#394)
* add a test for symlinks escaping defined music paths

* refactor(scanner): make the watcher a little easier to reason about
2023-10-24 22:57:42 +00:00
sentriz
95bc919377 don't backtick quote stuff 2023-10-19 02:17:39 +01:00
sentriz
e6761343ad move tags up a level
its not messily tied to scanner anymore
2023-10-05 01:27:21 +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
e3dd812b6c feat(ci): add a bunch more linters 2023-09-22 19:05:55 +02:00
sentriz
0eb5add1a0 delete multierr 2023-09-14 01:09:57 +01:00
sentriz
12c31cd334 use an enum for db settings 2023-09-14 00:51:40 +01:00
sentriz
8f6610ff86 feat: allow multi valued tag modes to be configurable 2023-09-10 16:16:33 +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
623d5c3709 feat(tags): support multi valued tags like albumartists 2023-09-05 17:42:24 +01: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
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
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
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
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
e4756aa560 reset scanList to empty map instead of nil 2022-10-12 18:14:47 +01:00
brian-doherty
ea28ff1df3 feat(scanner): add option to use fsnotify based scan watcher (#232)
* First cut at fsnotify support. Tested on Linux.

* Fixed bug in logging.

* Fixed lint issues.

* Added new scan watcher option to README.md

* Inverted conditional and dedented following code as per PR discussion.

* Changed command line switch and error return on ExecuteWatch() as per GH comments.

* Scan watcher: Removed scan at first start. Modified watcher to set a 10 second timer and then process in bulk.

Co-authored-by: Brian Doherty <brian@hplaptop.dohertyfamily.me>
2022-10-08 15:47:35 +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
d6d1fe26ba refactor(scanner): remove unused genreIDs arg 2022-05-19 00:46:17 +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
b95f98ffcf add "-full-scan" scan option to gonic scan
closes #20
2020-04-24 01:57:17 +01:00
sentriz
1ff5845a02 refactor server startup into jobs 2020-04-18 19:35:15 +01:00
sentriz
256143a025 move senan.xyz/g/ to go.senan.xyz 2020-04-02 16:46:04 +01:00
sentriz
22992c9941 fixup! run gofumpt / format comments / comment blocks 2020-03-20 02:48:51 +00:00
sentriz
03647176d4 clean up scanner cleanup 2020-03-14 16:41:28 +00:00
sentriz
3a8e5b9205 run gofumpt / format comments / comment blocks 2020-03-12 15:17:36 +00:00
sentriz
29e9abc1d4 scrobble with brainz trackid, not album id 2020-03-12 13:28:27 +00:00
Duncan Overbruck
ae31d4a893 scanner: add genre support 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
a42edc3441 move models into db package 2020-02-19 20:08:37 +00:00
sentriz
bdee11dfb6 consider symlinks to directories when pushing to scan stack
https://github.com/karrick/godirwalk/pull/45
https://github.com/sentriz/gonic/issues/27
2020-01-28 23:54:55 +00:00
sentriz
1dbd7811e6 follow symlinks while scanning
closes #27
2020-01-27 18:13:33 +00:00
sentriz
4f93ea7895 reset tracking variables after start scan
forgot about this when i admin and subsonic handlers reuse the same
scanner struct
2019-11-28 17:19:04 +00:00
sentriz
d02ace460d flatten callbackPost logic 2019-07-31 15:11:51 +01:00
sentriz
03af38be37 don't freak out if there's a file without and extension 2019-07-31 15:11:51 +01:00
sentriz
bef842ff4b close transation if there's one open im handlefolder 2019-07-31 15:11:50 +01:00
sentriz
5444b328fd seperate routes, provide robust handler types, use mux 2019-07-31 15:11:46 +01:00
sentriz
5e088f32ca update scanner comments 2019-07-09 21:52:08 +01:00
sentriz
35a4f5b42c scan musicbrainz album id to db and scrobble with it 2019-07-08 23:17:15 +01:00
sentriz
f2ac3b2cdf make recently added persistent 2019-07-08 21:54:20 +01:00