* ReplayGain support
- extract ReplayGain tags from files, expose via native api
- use metadata to normalize audio in web player
* make pre-push happy
* remove unnecessary prints
* remove another unnecessary print
* add tooltips, see metadata
* address comments, use settings instead
* remove console.log
* use better language for gain modes
* add internet radio support
* Add dynamic sidebar icon to Radios
* Fix typos
* Make URL suffix consistent
* Fix typo
* address feedback
* Don't need to preload when playing Internet Radios
* Reorder migration, or else it won't be applied
* Make Radio list view responsive
Also added filter by name, removed RadioActions and RadioContextMenu, and added a default radio icon, in case of favicon is not available.
* Simplify StreamField usage
* fix button, hide progress on mobile
* use js styles over index.css
Co-authored-by: Deluan <deluan@navidrome.org>
* 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
* Configure fetching from API and route
* pretty
* Remove errors
* Remove errors
* Remove errors
* Complete page for Desktop view
* Fix error
* Add xs Artist page
* Remove unused import
* Add styles for theme
* Change route path
* Remove artId useEffect array
* Remove array
* Fix cover load err
* Add redirect on err
* Remove route
* What's in a name? consistency :)
* Fix err
* Fix UI changes
* Fetch album from resource
* Renaming done
* Review changes
* Some touch-up
* Small refactor, to make naming and structure more consistent with AlbumShow
* Make artist's album list similar to original implementation
* Reuse AlbumGridView, to avoid duplication
* Add feature flag to enable new Artist Page, default false
* Better biography styling. Small refactorings,
* Don't encode quotes and other symbols
* Moved AlbumShow to correct folder
Co-authored-by: Deluan <deluan@navidrome.org>
* Show playlists in sidebar menu
* Fix menu
* Refresh playlist submenu when adding new playlist
* Group shared playlists below user's playlists
* Fix text overflow in menu options
* Add button in playlist menu to go to Playlists list
* Add config option `DevSidebarPlaylists` to enable this feature (default false)
* 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>
* 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.
* Added Star Rating functionality for Songs
* Added Star Rating functionality for Artists
* Added Star Rating functionality for AlbumListView
* Added Star Rating functionality for AlbumDetails and improved typography for title
* Added functionality to turn on/off Star Rating functionality for Songs
* Added functionality to turn on/off Star Rating functionality for Artists
* Added functionality to turn on/off Star Rating functionality for Albums
* Added enableStarRating to server config
* Resolved the bugs and improved the ratings functionality.
* synced repo and removed duplicate key
* changed the default rating size to small, and changed the color to match the theme.
* Added translations for ratings, and Top Rated tab in side menu.
* Changed rating translation to topRated in albumLists, and added has_rating filter to topRated.
* Added empty stars icon to RatingField.
* Added sortable=false in AlbumSongs and added sortByOrder=DESC in all List components.
* Added translations for rating, for artists and albums, and removed the sortByOrder=DESC from SimpleLists.
* added quality info
* fixed formatting
* implemented various suggestions
* npm run prettier
* applied suggestions
* npm run prettier
* corrected lossless formats and other suggestions
* moved losslessformats into consts.js
* added some test
* typo while resolving conflicts
* fetch
* removed a bug causing component (as suggested)
* Update PlayerToolbar.js
* implemented suggestions
* added few more tests
* npm run prettier
* added size
* updated qualityInfo
* implemented suggestions
* added test for when no record is recieved
* Update QualityInfo.js
* Added setRating feature to AlbumListView
* Refactored the iconography from ⭐ to ❤️
* Refactored the current component from StarButton to LoveButton
* Refactored all translations from Starred to Loved, and all props from showStar to showLove
* Refactored useToggleStar hook to useToggleLove
* rebased repository from master and removed stray commmits
* Refactored handler name from TOGGLE_STAR to TOGGLE_LOVE in PlayerToolbar.js
* Change "starred" translation to "Favorite"
Co-authored-by: Deluan <deluan@navidrome.org>