Commit Graph

155 Commits

Author SHA1 Message Date
Deluan b6eb60f019 Add new Artwork Cache Warmer 2022-12-28 15:31:56 -05:00
Deluan 8c1cd9c273 Refactor file type functions 2022-12-28 15:31:56 -05:00
Deluan 9ec349dce0 Make sure album is updated if external cover changes 2022-12-28 15:31:56 -05:00
Deluan 73bb0104f0 Cache original images 2022-12-28 15:31:56 -05:00
Deluan 28e7371d93 Moved logic of collapsing songs into albums to model package
(it should really be called domain.... maybe will rename it later)
2022-12-28 15:31:56 -05:00
Deluan e03ccb3166 Replace MinInt/MaxInt with generic versions 2022-12-28 15:31:56 -05:00
Deluan 5943e8f953 Rename log.LevelCritical to log.LevelFatal 2022-12-21 14:53:36 -05:00
Deluan Quintão 24d520882e
Don't cache transcoded files if the request was cancelled (#2041)
* Don't cache transcoded files if the request was cancelled (or there was a transcoding error)

* Add context to logs

* Simplify Wait error handling

* Fix flaky test

* Change log level for "populating cache" error message

* Small cleanups
2022-12-18 12:22:12 -05:00
Deluan f206d81afd Some cleanup, fixes typos and grammar errors 2022-12-06 20:09:03 -05:00
Deluan 950b5dc1ce Remove `math/rand` and only use `crypto/rand` 2022-11-27 21:53:13 -05:00
Deluan 7bafbce816 Reduce number of goroutines in test, to avoid hitting the hard limit of 8128 2022-11-26 15:28:30 -05:00
Deluan a69a31a3bf Use custom atomic.Bool, as it is not supported in Go 1.18 2022-11-26 15:14:19 -05:00
Deluan f82df70302 Add nilerr linter 2022-09-30 20:18:14 -04:00
Deluan a7a0e23956 Fix formatting 2022-09-26 21:28:10 -04:00
Deluan d613b19306 Simplify Singleton usage by leveraging Go 1.18's generics 2022-07-27 12:15:05 -04:00
Deluan 31882abf6f Upgrade Ginkgo to V2 2022-07-26 16:53:17 -04:00
Deluan f4bffb1676 Update @djherbis's packages 2022-07-26 15:16:56 -04:00
Deluan 35bec14d4d Add missing test case for #1778 2022-07-25 23:34:09 -04:00
Deluan 321b3c5a64 Fix fscache key mapping. Closes #1778 2022-07-25 23:01:19 -04:00
Deluan 6a87fc88f7 Ignores invalid timestamps in requests (use current time)
Fix this issue: https://www.reddit.com/r/navidrome/comments/ql3imf/scrobbling_fails_when_using_substreamer/
2021-11-02 10:33:40 -04:00
Deluan 66a9cbb7d9 Remove temp folders after tests 2021-10-28 10:40:31 -04:00
Deluan f645c4769c Fix double escaped lyrics and comments 2021-10-26 19:33:21 -04:00
Deluan 76fdcd112b Tweak SimilarSongs algorithm to prioritize the requested main artist 2021-10-24 18:04:40 -04:00
Deluan 1a96e9fe65 Import smart playlists (extension .nsp) 2021-10-23 20:25:28 -04:00
Deluan dbde0ffa0c Bump github.com/djherbis/atime to v1.1.0 2021-10-03 22:50:25 -04:00
Deluan 4fcb238295 Fix "too many SQL variables" error in `GetStarred` endpoint 2021-07-21 10:45:52 -04:00
Deluan eeb14f0243 Removed unused function 2021-07-20 20:50:59 -04:00
Deluan 8afa2cd833 Remove dependency of deprecated `ioutil` package 2021-07-20 20:12:28 -04:00
Deluan 774ad65155 Use fs.FS in MergeFS implementation 2021-07-20 19:54:44 -04:00
Deluan 7cd3a8ba67 Add genre tables, read multiple-genres from tags 2021-07-20 17:45:08 -04:00
Deluan b0fc684cb6 Fix small lint errors found by gocritic 2021-07-15 13:43:03 -04:00
Deluan 94e36d7f60 Remove old feature flag for cache layout 2021-07-02 10:04:41 -04:00
Deluan 452c8dc44b Fixed the enduring nasty "too many files open" bug!! Fix #446 2021-07-01 12:07:32 -04:00
Deluan a7509c9ff7 Send NowPlaying and Scrobbles to Last.fm 2021-06-23 11:01:58 -04:00
Deluan 25db2cb075 Add concurrency test for singleton 2021-06-20 11:51:32 -04:00
Deluan f8ee6db72a New implementation of NowPlaying 2021-06-20 10:39:16 -04:00
Deluan Quintão 66b74c81f1
Encrypt passwords in DB (#1187)
* Encode/Encrypt passwords in DB

* Only decrypts passwords if it is necessary

* Add tests for encryption functions
2021-06-18 18:38:38 -04:00
Deluan f9eec5e4dc Refactored agents calling into its own struct 2021-06-08 17:00:02 -04:00
Deluan e80cf80d05 Move all Spotify and LastFM code into only one folder for each 2021-06-08 11:25:46 -04:00
Steve Richter 65ccd4c99d
Parse ParamBool case-insensitively (#1151) 2021-06-04 23:37:01 -04:00
Deluan 91a91f7e06 GetCoverArt returns placeholder if `id` is missing
This mimics Subsonic behaviour, even if it contradicts the API documentation, which states `id` is required

Fixes #1139
2021-05-29 11:37:00 -04:00
Deluan 7bbb09e546 Add tests for WeightedRandomChooser 2021-05-28 23:51:56 -04:00
Deluan a38e478a47 Better SimilarSongs algorithm 2021-05-28 22:55:34 -04:00
Deluan Quintão 89b12b34be
Retry calls to Last.FM without MBIDs when if returns artist invalid (#1138)
* Call Last.FM's getInfo again without mbid when artist is not found

* Call Last.FM's getSimilar again without mbid when artist is not found

* Call Last.FM's getTopTracks again without mbid when artist is not found
2021-05-27 20:53:24 -04:00
Deluan d1605dcfbe Replace `godirwalk` with standard Go 1.16 `filepath.WalkDir`
Should fix https://github.com/navidrome/navidrome/issues/1048
2021-04-27 11:28:47 -04:00
Deluan 240de70026 Add tests for SpreadFS 2021-04-22 14:02:42 -04:00
Deluan 467eb345ad Don't panic if fscache could not be initialized due to a FS error 2021-04-21 23:39:23 -04:00
Deluan 31b553e972 Add missing error log message in fscache initialization 2021-04-21 14:15:42 -04:00
Deluan Quintão 2d528bbc87
Remove dependency of go-bindata (#818)
* Use new embed functionality for serving UI assets

* Use new embed functionality for serving resources. Remove dependency on go-bindata

* Remove Go 1.15
2021-03-12 11:06:51 -05:00
Deluan a140c222c2 Fix race condition in test 2021-02-19 19:36:55 -05:00
Deluan 1d681d92d3 Better explanation of NewSpreadFS 2021-02-09 15:33:34 -05:00
Deluan 5fdd8b32d7 Move utilitarian/generic packages to utils: lastfm, spotify, gravatar, cache, and pool 2021-02-09 15:33:33 -05:00
Deluan 6ee45a9ccc Move project to Navidrome GitHub organization 2021-02-06 21:46:35 -05:00
Deluan 4f90fa9924 Add denormalized list of artist_ids to album, to speed-up artist's albums queries
This will be removed once we have a proper many-to-many relationship between album and artist
2020-12-13 14:05:48 -05:00
Deluan fb1461fd0b Fix reading dirs from a MergeFS 2020-11-05 13:36:10 -05:00
Deluan 841c1129ff Break-up album/artist refresh in chunks 2020-09-09 08:57:59 -04:00
Deluan 2d3ed85311 Add bookmark in persistence layer 2020-07-31 17:45:49 -04:00
Deluan 9b1d5c196f Load cache asynchronously 2020-07-24 16:54:04 -04:00
Deluan b795ad55a3 Allow SeekStart in a merged dir 2020-07-23 22:00:59 -04:00
Deluan 72efc18158 Allow translations to be overridden in the data folder 2020-07-23 18:11:10 -04:00
Deluan 93626129b6 Also import `.m3u8` playlists 2020-07-23 03:26:39 -04:00
Deluan feca030c6d Give warning when playlists are not imported due to not having an admin user 2020-07-19 13:58:46 -04:00
Deluan 3095bee5d9 Fix lint error 2020-07-17 12:16:16 -04:00
Deluan 51c295d1de Add new scanner algorithm, can be enabled with DevNewScanner config option 2020-07-17 12:06:49 -04:00
Deluan 681849d174 Fix pls ignoring 2020-07-03 21:15:01 -04:00
Deluan 17830d63b4 Ignore m3u files when scanning 2020-07-03 21:06:33 -04:00
Deluan eb109ebeb4 Remove duplicated helper functions, move them to `utils` package 2020-06-24 20:48:42 -04:00
Deluan e73b71aaf7 Remove tracks from DB that were deleted while Navidrome was not running. Fixes #151 2020-06-14 03:11:16 -04:00
Deluan 3190611ec8 Call `ffmpeg` in batches 2020-06-14 03:11:16 -04:00
Deluan 331fa1d952 Add ability to reorder playlist items 2020-06-04 19:05:41 -04:00
Deluan 5cd453afeb Fix all `errcheck` warnings 2020-04-26 15:07:36 -04:00
Deluan 777231ea79 feat: expose album, song and artist annotations in the RESTful API 2020-03-28 19:22:55 -04:00
Deluan 3cba5f70fd chore: add tests for all utils, removed unused functions 2020-03-24 11:59:10 -04:00
Deluan f6e448c1ba refactor: removed unused code, unnecessary typecasts and fixed small warnings 2020-03-20 00:07:36 -04:00
Deluan 8673533cd4 refactor: move request param extractors to utils 2020-02-06 18:55:38 -05:00
Deluan bff6f3a4bd Rename env vars prefix to ND_ 2020-01-24 01:29:31 -05:00
Deluan bee55c04c8 Rename project to Navidrome 2020-01-23 19:44:08 -05:00
Deluan 57fcdac428 Initial support for playlists. Missing permissions 2020-01-21 16:39:35 -05:00
Deluan Quintão be377846a8
Remove Portuguese word, to avoid misspell errors 2020-01-15 15:35:04 -05:00
Deluan 93ab4132fe Move mapping functions to db_ledis, where it is used 2020-01-11 15:27:32 -05:00
Deluan b1e58352e9 Restore MediaRetrievalController tests 2020-01-09 22:44:45 -05:00
Deluan e8a8313b43 Removed `inject` lib, only use `wire` for DI 2020-01-09 22:44:45 -05:00
Deluan c417a00e62 Renamed project to CloudSonic 2017-04-01 09:47:14 -04:00
Deluan c2b1f9782b New configuration system 2016-03-30 00:05:57 -04:00
Deluan 5b2ecc39ca Longest Common Prefix 2016-03-24 09:51:50 -04:00
Deluan c87b133071 Polishing 2016-03-23 12:37:03 -04:00
Deluan 4e0a47d2a6 Removed unused code 2016-03-13 23:25:43 -04:00
Deluan f4c1dbdd3c Simplified DI resolution 2016-03-11 15:16:17 -05:00
Deluan df957814a0 Implemented artists indexing, with Gomate 2016-03-10 23:19:13 -05:00
Deluan e9ab07e4d3 Tests for time conversion utils 2016-03-08 19:29:56 -05:00
Deluan 067517a916 Fixed problem with DI 2016-03-08 18:33:35 -05:00
Deluan 91c660c746 Added a new layer: engine (equivalent to use cases in Clean Architecture). Should make testing things easier 2016-03-07 10:57:32 -05:00
Deluan 7225807bad Initial work on downsampling
The http connection is being closed before sending all data. May have something to do with the Range header
2016-03-04 13:33:09 -05:00
Deluan f3ba23ef41 Fixed a problem with the injection code 2016-03-03 13:14:05 -05:00
Deluan 4843ccb46c go fmt 2016-03-02 13:18:39 -05:00
Deluan cff829fb75 Removed debug prints 2016-03-01 17:57:03 -05:00
Deluan 9d6eb40f6f Method for parsing Index Groups 2016-03-01 17:07:13 -05:00
Deluan 54460d5860 Empty tests should be skipped 2016-03-01 12:43:55 -05:00
Deluan 2bb4c74ba6 Started implementing getIndex, now with TDD (brought to you by DI)! 2016-03-01 12:36:15 -05:00
Deluan 4df6c43be8 Basic DI (dependency injection) working! Yay!! 2016-03-01 09:38:43 -05:00