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
Steve Richter
e60f2bfa3d
User management improvements ( #1101 )
...
* Show more descriptive success messages for User actions
* Check username uniqueness when creating/updating User
* Adjust translations
* Add tests for `validateUsernameUnique()`
Co-authored-by: Deluan <deluan@navidrome.org>
2021-05-16 13:25:38 -04:00
Brian Schrameck
30bb3f7b43
BPM metadata enhancement ( #1087 )
...
* BPM metadata enhancement
Related to #1036 .
Adds BPM to the stored metadata about MediaFiles.
Displays BPM in the following locations:
- Listing songs in the song list (desktop, sortable)
- Listing songs in playlists (desktop, sortable)
- Listing songs in albums (desktop)
- Expanding song details
When listing, shows a blank field if no BPM is present. When showing song details, shows a question mark.
Updates test MP3 file to have BPM tag. Updated test to ensure tag is read correctly.
Updated localization files. Most languages just use "BPM" as discovered during research on Wikipedia. However, a couple use some different nomenclature. Spanish uses PPM and Japanese uses M.M.
* Enhances support for BPM metadata extraction
- Supports reading floating point BPM (still storing it as an integer) and FFmpeg as the extractor
- Replaces existing .ogg test file with one that shouldn't fail randomly
- Adds supporting tests for both FFmpeg and TagLib
* Addresses various issues with PR #1087 .
- Adds index for BPM. Removes drop column as it's not supported by SQLite (duh).
- Removes localizations for BPM as those will be done in POEditor.
- Moves BPM before Comment in Song Details and removes BPM altogether if it's empty.
- Omits empty BPM in JSON responses, eliminating need for FunctionField.
- Fixes copy/paste error in ffmpeg_test.
2021-05-05 21:35:01 -04:00
Deluan
b8138ebad6
Fix create first login
2021-05-02 14:13:17 -04:00
Deluan
e3fe8399c8
Fix DevAutoCreateAdminPassword
2021-05-01 18:40:02 -04:00
whorfin
20d2726faa
Improve scanner ( #1054 )
...
* Handle subdirectories without rx permission correctly
Allow ogg files w/o metadata, having taglib behave more like ffmpeg
* Fix test for walk_dir_tree, fix full reading of files in permission-
constrained directories, allow directories with leading ellipses
* Sorted directory traversal is preferred, and cleanup tests
* Small refactoring to clean-up `loadDir` function and to remove some "warnings" from IntelliJ
Co-authored-by: Deluan <deluan@navidrome.org>
2021-04-28 19:51:02 -04:00
Deluan
6ee45a9ccc
Move project to Navidrome GitHub organization
2021-02-06 21:46:35 -05:00
Deluan
aee4eb71c4
Add support for multi-line tags
2020-11-11 09:45:46 -05:00
Deluan
2f394623c8
WIP
2020-10-29 23:19:26 -04:00
Deluan
d0bf37a8a9
Move mock datastore to tests package
2020-10-27 15:23:49 -04:00
Deluan
4514a54744
Fix ignoring hidden folders when scanning
2020-10-22 13:59:54 -04:00
Deluan
049ac70b2b
Add "real" TopSongs
2020-10-20 22:53:52 -04:00
Deluan
e9e09a7480
Add dedicated SimilarArtists call
2020-10-20 16:07:31 -04:00
Deluan
19ead8f7e8
Add initial spotify client implementation
2020-10-20 16:07:31 -04:00
Deluan
eb74dad7cd
Add initial last.fm client implementation
2020-10-20 16:07:31 -04:00
Deluan
8dfc259857
Serve `robots.txt` from root ( http://server/robots.txt )
2020-10-02 10:15:19 -04:00
Deluan
a45c08f217
Ignore "hidden" files when importing a folder
2020-08-21 11:50:18 -04:00
Deluan
b836871161
Handle CR, LF and CRLF line endings when importing Playlists
2020-08-19 12:22:41 -04:00
Deluan
178e42487b
Remove invalid config options
2020-07-17 23:16:04 -04:00
Deluan
17830d63b4
Ignore m3u files when scanning
2020-07-03 21:06:33 -04:00
Deluan
a65c9bbb16
Refactor and clean up
2020-07-02 17:53:51 -04:00
Deluan
5021c0fd0c
Replace multiconfig with cobra+viper
2020-07-02 17:53:51 -04:00
Alex Palaistras
bb9a7fadc0
Add tests for external album cover processing
...
This implements basic tests for functionality related to loading and
processing external album covers, both on the scanning size, and on the
display side.
2020-06-24 20:48:42 -04:00
Deluan
9e845cb116
Skip scanning folders if they contain a `.ndignore` file. Closes #297
2020-05-18 14:37:01 -04:00
Deluan
cccd0235cf
Add option to specify ConfigFile path
2020-05-02 23:17:38 -04:00
Deluan
5862157a2c
Move test file to fixtures folder
2020-04-28 11:59:47 -04:00
Deluan
5cd453afeb
Fix all `errcheck` warnings
2020-04-26 15:07:36 -04:00
Deluan
d7edbf93f0
Make test more reliable
...
In some systems, it was detecting the `go.mod` file as an audio file, probably because of the system's mime-type configuration
2020-04-24 11:05:17 -04:00
Deluan
5a072fbd10
Follow symlinks to directories when scanning
2020-04-23 20:31:44 -04:00
Deluan
b930c7253a
Fix tests in pipeline
2020-04-06 17:01:48 -04:00
Deluan
faa2a978c0
refactor: use only one DB instance for the whole application
2020-02-28 15:06:31 -05:00
Deluan
28bad95e66
test: removed unused `file` property
2020-02-04 19:59:04 -05:00
Deluan
4e3b13050b
fix: tests
2020-01-26 18:25:12 -05:00
Deluan
cc6eacd608
fix: option to skip flags, to avoid breaking the tests
2020-01-26 18:00:10 -05:00
Deluan
0ff741b394
fix: persistence tests were not being properly initialized
2020-01-26 17:10:13 -05:00
Deluan
bee55c04c8
Rename project to Navidrome
2020-01-23 19:44:08 -05:00
Deluan
7610b42f4b
Moved package `api` to `subsonic` under `server`
2020-01-19 18:23:09 -05:00
Deluan
a4b75fd69d
Test "Compilation" tag
2020-01-18 11:19:00 -05:00
Deluan
123f543a94
New Folder Scanner - WIP
2020-01-17 20:54:28 -05:00
Deluan
a167669717
Change default db path
2020-01-14 18:55:12 -05:00
Deluan
5acc9c7a22
Make DisableAuthentication a Dev flag
2020-01-11 15:27:32 -05:00
Deluan
ff5b91da54
Renamed DisableValidation to DisableAuthentication
2020-01-09 22:44:45 -05:00
Deluan
84d69a4f41
Replaced Beego logging
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
7202f618fe
Upgrades to Beego v1.8.0
2017-04-01 10:59:31 -04: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
83e0a7b24c
Fixing some lint warnings
2016-03-26 22:43:13 -04:00
Deluan
b660a70688
Introduced engine.Scrobbler
...
Also refactored mocks into their original packages, to avoid cyclic references. Is there a better way to have mocks in GoLang tests?
2016-03-16 17:59:28 -04:00
Deluan
2437eed586
Removed unnecessary "else"s
2016-03-10 09:37:35 -05:00
Deluan
60d4cb5d9f
Converted all collections from repositories to *collections
2016-03-08 20:33:09 -05:00
Deluan
8607e25c90
Moved properties to engine layer
2016-03-08 18:40:16 -05:00
Deluan
067517a916
Fixed problem with DI
2016-03-08 18:33:35 -05:00
Deluan
e10e730af1
Refactored logic from getMusicDirectory.view to the new engine layer.
...
This reveled a nasty bug in the DI code. Tests are broken
2016-03-08 14:19:27 -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
9a246b5432
First version of getAlbumList.view working.
...
- It still misses almost all type options
- Introduced "parent" in Child subresponse, as it was breaking DSub
2016-03-04 09:09:16 -05:00
Deluan
fc6d49d34c
Introduced types for the collections
2016-03-03 21:01:55 -05:00
Deluan
c9455e1955
getCoverArt.view working
2016-03-03 12:08:44 -05:00
Deluan
012958cd08
go fmt
2016-03-03 00:46:23 -05:00
Deluan
757e1992d7
Bare bones getMusicDirectory for albums!
2016-03-02 23:15:17 -05:00
Deluan
838d4bf38f
getMusicDirectory bare bones for artists working
2016-03-02 22:22:31 -05:00
Deluan
4f5af423a8
More getMusicDirectory
2016-03-02 21:19:32 -05:00
Deluan
9577d9ae87
Started the implementation of getMusicDirectory. Probably will need to introduce a new 'service' layer...
2016-03-02 20:00:55 -05:00
Deluan
4ee840a394
Rename
2016-03-02 17:35:37 -05:00
Deluan
dde130e84e
Small fixes to response marshaling, introduced tests for response formats
2016-03-02 17:23:26 -05:00
Deluan
4843ccb46c
go fmt
2016-03-02 13:18:39 -05:00
Deluan
272a499c7e
Refactoring to a cleaner architecture
2016-03-02 09:10:28 -05:00
Deluan
6092076fad
No need to expose implementations
2016-03-01 19:17:30 -05:00
Deluan
b8948c417e
Checking ifModifiedSince param
2016-03-01 16:05:49 -05:00
Deluan
841d8f457f
Implemented ProperyRepository. Now the Scanner stores the LastScan timestamp
2016-03-01 14:40:26 -05:00
Deluan
b0bd0a63a7
Retrofitting with tests
2016-02-29 10:04:30 -05:00
Deluan
ce240cfeff
Better tests organization
2016-02-27 18:42:08 -05:00
Deluan
ecc0df9e7c
More experimenting with tiedot
2016-02-27 03:35:01 -05:00
Deluan
e760952263
go fmt
2016-02-25 18:52:07 -05:00
Deluan
39757f884a
Moved Rest controllers to 'api' package. Also removed annotation routes
2016-02-25 16:35:44 -05:00
Deluan
f04ec42fdf
Controller tests are in fact API tests
2016-02-25 12:41:34 -05:00
Deluan
77e01f8e7c
Fixed packages in tests
2016-02-25 11:14:16 -05:00
Deluan
ee04b72db1
Implemented request validation in a filter
2016-02-24 20:21:51 -05:00
Deluan
93f115d8e4
Default mediaFolder should have Id = 0
2016-02-24 19:35:58 -05:00
Deluan
2f3c9a7603
Implemented getMediaFolders
2016-02-24 19:14:48 -05:00
Deluan
59b541e45d
Polishing
2016-02-24 18:33:13 -05:00
Deluan
086d8e1578
Tests refactored
2016-02-24 18:24:06 -05:00
Deluan
975327a6cb
Handling request validation/authentication
2016-02-24 18:06:49 -05:00
Deluan
c8b7695b09
Moved responses package and started getMusicFolders endpoint
2016-02-24 15:29:19 -05:00
Deluan
1a3f370ea6
Refactored responses, implemented getLicense
2016-02-24 11:40:58 -05:00
Deluan
ed1a132d8e
Better Ping implementation
2016-02-24 00:29:27 -05:00
Deluan
b9e9d38a9a
First endpoint: Ping
2016-02-24 00:07:57 -05:00
Deluan
5d6fd4ee6b
Initial project skeleton
2016-02-23 18:41:35 -05:00