Commit Graph

28 Commits

Author SHA1 Message Date
Steve Richter a56d5bc850
Listenbrainz scrobbling (#1424)
* Refactor session_keys to its own package

* Adjust play_tracker

- Don't send external NowPlaying/Scrobble for tracks with unknown artist
- Continue to the next agent on error

* Implement ListenBrainz Agent and Auth Router

* Implement frontend for ListenBrainz linking

* Update listenBrainzRequest

- Don't marshal Player to json
- Rename Track to Title

* Return ErrRetryLater on ListenBrainz server errors

* Add tests for listenBrainzAgent

* Add tests for ListenBrainz Client

* Adjust ListenBrainzTokenDialog to handle errors better

* Refactor listenbrainz.formatListen and listenBrainzRequest structs

* Refactor agent auth_routers

* Refactor session_keys to agents package

* Add test for listenBrainzResponse

* Add tests for ListenBrainz auth_router

* Update ListenBrainzTokenDialog and auth_router

* Adjust player scrobble toggle
2021-10-30 12:17:42 -04:00
certuna ba0ee6aba4
Rename manifest.json to manifest.webmanifest (#1399)
* Rename manifest.json to manifest.webmanifest

browser consoles keep complaining that the manifest doesn't have the `.webmanifest` extension.

* FIx manifest.webmanifest references

Co-authored-by: Deluan <deluan@navidrome.org>
2021-10-12 20:06:09 -04:00
Deluan ab2912b4fa Only import playlists from configured paths in option `PlaylistsPath`. Closes #1181
Syntax is Ant-style Globs, with support for '**' (any subfolder). Default: '.:**' (or '.;**' in Windows`, meaning all folders and subfolders under `MusicFolder`
2021-09-12 21:07:51 -04:00
caio e9d0abe0bc Support local paths as urls in playlists. 2021-08-02 23:53:47 -04:00
Deluan ed01946ace Embed Last.FM error responses, making the tests faster 2021-05-27 21:04:03 -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
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
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 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 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 17830d63b4 Ignore m3u files when scanning 2020-07-03 21:06:33 -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 5862157a2c Move test file to fixtures folder 2020-04-28 11:59:47 -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 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 c9455e1955 getCoverArt.view working 2016-03-03 12:08:44 -05:00
Deluan b0bd0a63a7 Retrofitting with tests 2016-02-29 10:04:30 -05:00