Commit Graph

105 Commits

Author SHA1 Message Date
8914c59978 Use file name for unknown tag title retrieval.
When taglib get empty or null title from file/album, use file name or
folder name as the tag_title field. It could be confuse to user, but at
leaset it is better than tracks/albums can't be search in ID3 mode API.
2024-06-24 16:21:04 +08:00
cf5e87e62b feat: improve cover selection algorithm
Some checks failed
Release / Run Release Please (push) Blocked by required conditions
Release / Build, tag, and publish Docker image (push) Blocked by required conditions
Release / Notify IRC (push) Blocked by required conditions
Release / Lint and test (push) Has been cancelled
2024-06-11 18:26:44 +08:00
sentriz
0e45f5e84c feat(subsonic): expose replaygain tags 2024-05-30 11:43:45 +01:00
sentriz
86fd590556 scanner: use create time if we have it 2024-05-15 17:07:44 +02:00
brian-doherty
93ce039963 feat(scanner): support full scan cleanups in watcher (#496)
* Added code to trigger rescan of entire tree upon file removal to clean as needed.

* Simplified ScanOptions initialization. Removed broken linter.

* gofmt fix
2024-04-21 00:04:53 +00:00
sentriz
02606087dc use context to stop main() jobs
use
2024-02-27 00:39:44 +00:00
sentriz
19ebd4540f fix(scanner): clean up orphaned album genres when dir still exists without tracks
fixes #466
2024-02-13 21:53:28 +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
sentriz
b5de0b3b84 centralise special path prefix check 2023-12-29 19:20:31 +00:00
sentriz
f5b6b4d790 fix substring checking in scanner musicDirRelative
related https://github.com/sentriz/gonic/issues/437
2023-12-22 13:00:14 +00:00
sentriz
7efe29f29f refactor(scanner): extract symlink walking 2023-12-13 02:16:05 +00:00
sentriz
9e12394acc refactor(scanner): rename scan context to scan state 2023-12-13 01:32:15 +00:00
sentriz
688f9d3be5 update created_at logic 2023-12-07 16:26:18 +00:00
sentriz
5022500b30 fix(subsonic): return empty opensubsonic fields
https://github.com/sentriz/gonic/pull/397#issuecomment-1806794844
2023-11-11 12:34:04 +00:00
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