certuna
52b77e4194
Support for Original Date, Release Date & splitting/grouping of album editions ( #2162 )
...
* Update AlbumGridView.js
* Update AlbumDetails.js
* Update AlbumDetails.js
* Create DoubleRangeField.js
* Update and rename DoubleRangeField.js to RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update AlbumGridView.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update index.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update en.json
* Update en.json
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update AlbumGridView.js
* Update AlbumDetails.js
* Update AlbumSongs.js
* Update ContextMenus.js
* Update SongDatagrid.js
* Update AlbumSongs.js
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update AlbumSongs.js
* Update SongList.js
* Update playlist_track_repository.go
* Update 20230113000000_release_year.go
* Update PlayButton.js
* Update mediafile_repository.go
* Update album.go
* Update playlist_track_repository.go
* Update playlist_track_repository.go
* Update SongDatagrid.js
* Update 20230113000000_release_year.go
* Update SongDatagrid.js
* Update AlbumSongs.js
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update AlbumDetails.js
* Update AlbumSongs.js
* Update AlbumSongs.js
* Update RangeFieldDouble.js
* Update SongDatagrid.js
* Update 20230113000000_release_year.go
* Update 20230113000000_release_year.go
* Update 20230113000000_release_year.go
* Update 20230113000000_release_year.go
* Update AlbumSongs.js
* Update AlbumSongs.js
* Update mapping.go
* Update RangeFieldDouble.js
* Update AlbumGridView.js
* Update AlbumSongs.js
* Update en.json
* Update SongDatagrid.js
* Update SongDatagrid.js
* Update metadata.go
* Update mapping.go
* Update AlbumDetails.js
* Update AlbumGridView.js
* Update RangeFieldDouble.js
* Update mapping.go
* Update metadata.go
* Update mapping.go
* Update AlbumDetails.js
* Update 20230113000000_release_year.go
* Update AlbumDetails.js
* Update en.json
* Update configuration.go
* Update mapping.go
* Update configuration.go
* Update mediafile.go
* Update metadata.go
* Update RangeFieldDouble.js
* Update 20230113000000_release_year.go
* Update configuration.go
* Update mapping.go
* Update mediafile.go
* Update mapping.go
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update RangeFieldDouble.js
* Update 20230113000000_release_year.go
* Update AlbumDetails.js
* Update RangeFieldDouble.js
* Update mapping.go
* Update metadata.go
* Update album.go
* Update mediafile.go
* Update mediafile.go
* Update album.go
* Update fields.go
* Update mediafile_repository.go
* Update playlist_track_repository.go
* Update AlbumSongs.js
* Update SongDatagrid.js
* Update PlayButton.js
* Update SongList.js
* Update ContextMenus.js
* Update SongDatagrid.js
* Update metadata.go
* Update ArtistShow.js
* Update mapping.go
* Update configuration.go
* Update mapping.go
* Update metadata.go
* Update metadata.go
* Update mapping.go
* Update metadata.go
* Update metadata.go
* Update mapping.go
* Update 20230113000000_release_year.go
* Update 20230113000000_release_year.go
* Update mapping.go
* Update metadata.go
* Update metadata.go
* Update album.go
* Update mediafile.go
* Update AlbumDetails.js
* Update AlbumSongs.js
* Update album.go
* Update mediafile.go
* Update metadata.go
* Update mediafile.go
* Update 20230113000000_release_year.go
* Update 20230113000000_release_year.go
* Update album.go
* Update mediafile.go
* Update RangeFieldDouble.js
* Update AlbumDetails.js
* Update AlbumGridView.js
* Update en.json
* Update AlbumGridView.js
* Update RangeFieldDouble.js
* Update and rename 20230113000000_release_year.go to 20230113000000_release_date.go
* Update album.go
* Update mediafile.go
* Update fields.go
* Update playlist_track_repository.go
* Update mediafile_repository.go
* Update mapping.go
* Update metadata.go
* Update mapping.go
* Update SongDatagrid.js
* Update RangeFieldDouble.js
* Update index.js
* Update ContextMenus.js
* Update PlayButton.js
* Create FormatDate.js
* Update SongList.js
* Update AlbumDetails.js
* Update AlbumSongs.js
* Update AlbumSongs.js
* Update en.json
* Update AlbumDetails.js
* Update album.go
fixed conflict I think?
* Update mediafile.go
fixed conflict
* Format with goimports
* Update SongDatagrid.js
only show Cat # in desktop view
* Update metadata_internal_test.go
* Update metadata_test.go
* Delete test.mp3
* Add files via upload
mp3 test file with Date, Original Date and Release Date
* Update metadata_test.go
* Update metadata_test.go
* Update metadata_test.go
* Update metadata_test.go
* Update taglib_test.go
* Delete test.mp3
* Add files via upload
file with replaygain & dates
* Update AlbumGridView.js
* Update AlbumDetails.js
* Update AlbumSongs.js
* Update ContextMenus.js
* Update FormatDate.js
* Update PlayButton.js
* Update RangeFieldDouble.js
* Update SongDatagrid.js
* Update AlbumSongs.js
* Update SongDatagrid.js
* Update AlbumSongs.js
* Fix formatting
* Update mapping.go
* Update AlbumSongs.js
* Update SongDatagrid.js
* Update SongDatagrid.js
prettier
* Create RangeDoubleField.js
rename of RangeFieldDouble.js
* Update AlbumGridView.js
RangeFieldDouble -> RangeDoubleField
* Update mediafile.go
AllOrNothing() -> allOrNothing()
* Update metadata_internal_test.go
getYear -> getDate
* Update AlbumDetails.js
wrote suggested changes
* Update en.json
Editions -> Releases & fixed the field name
* Update configuration.go
Rename Editions -> Releases
* Update 20230113000000_release_date.go
Editions -> Releases
* Update album.go
Editions -> Releases
* Update mediafile.go
Editions -> Releases
* Update AlbumDetails.js
Editions -> Releases
* Update AlbumSongs.js
Editions -> Releases
* Update RangeDoubleField.js
Editions -> Releases
* Update SongDatagrid.js
Editions -> Releases
* Update index.js
FormatFullDate and RangeDoubleField
* Rename FormatDate.js to FormatFullDate.js
* Delete RangeFieldDouble.js
* Update mediafile.go
AllOrNothing -> allOrNothing
* Update mapping.go
Editions -> Releases
* Update AlbumDetails.js
prettier
* Update SongDatagrid.js
showReleaseRow -> showReleaseDivider
* Update AlbumSongs.js
showReleaseRow -> showReleaseDivider for clarity
* Update and rename 20230113000000_release_date.go to 20230515184510_add_release_date.go
- rename the migration file
- fixed the import to goose/v3
- additional db fields for original date & year
* Update 20230515184510_add_release_date.go
* Update fields.go
* Update album.go
* Update mediafile.go
* Update mapping.go
* Update AlbumDetails.js
* Update en.json
* Update AlbumDetails.js
* Update AlbumDetails.js
now hopefully prettier
* Update mapping.go
---------
Co-authored-by: Deluan <deluan@navidrome.org>
2023-05-19 15:27:47 -04:00
Deluan
95016f687e
Fix SQL migrations
2023-04-04 10:45:55 -04:00
Deluan
c3cc7dee01
Enable SQL migrations
2023-04-04 10:30:28 -04:00
Deluan
7847f19c9d
Upgrade goose
2023-04-04 10:05:31 -04:00
Deluan
a7d3e6e1f1
Add option to allow share to be downloaded
2023-03-10 23:33:29 -05:00
Deluan
2400e4f60d
Fix DB migration. Fix #2168
2023-02-12 14:58:33 -05:00
Deluan
b68ed2e4f9
Fix album's image_files
2023-02-09 18:29:08 -05:00
Deluan
3c5032a3e8
Add migration to rebuild albums paths
2023-02-02 14:42:01 -05:00
Deluan
9b81aa4403
Fix artwork resolution when paths contains :. Fix #2137
2023-02-02 12:18:55 -05:00
Deluan
ab04e33da6
Initial work on Shares
2023-01-24 18:36:45 -05:00
Kendall Garner
93adda66d9
Get album info (when available) from Last.fm, add getAlbumInfo endpoint ( #2061 )
...
* lastfm album.getInfo, getAlbuminfo(2) endpoints
* ... for description and reduce not found log level
* address first comments
* return all images
* Update migration timestamp
* Handle a few edge cases
* Add CoverArtPriority option to retrieve albumart from external sources
* Make agents methods more descriptive
* Use Last.fm name consistently
Co-authored-by: Deluan <deluan@navidrome.org>
2023-01-17 20:22:54 -05:00
Kendall Garner
1324a16fc5
ReplayGain support + audio normalization (web player) ( #1988 )
...
* 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
2023-01-17 15:57:19 -05:00
Kendall Garner
8877b1695a
Add Internet Radio support ( #2063 )
...
* 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>
2023-01-15 15:11:37 -05:00
Deluan
d3e4a5287d
"Touch" playlists to force some clients to reload cover art
2023-01-14 12:21:31 -05:00
Deluan
c90468b895
Find artist.* image in Artist folder
2023-01-13 22:18:34 -05:00
Deluan
fdbece5c92
Use custom sanitize package, fix #2070
2023-01-12 13:39:05 -05:00
Deluan
c36e77d41f
Remove CoverArtID, fix tests
2022-12-28 15:31:56 -05:00
Deluan
0130c6dc13
Add all images found for each album in the database
2022-12-28 15:31:56 -05:00
Deluan
566ae93950
Remove old refresh code
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
cd41d9a419
Shutdown gracefully, close DB connection
2022-11-21 12:28:09 -05:00
Zane van Iperen
c7ef4bd803
Capture "musicbrainz_releasetrackid" tag ( #1827 )
...
* db/migration: typo fix
* model: add MbzReleaseTrackID field
* scanner: capture the musicbrainz_releasetrackid tag
2022-10-01 12:13:47 -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
1c82bf5179
Remove non-album artist_ids from the DB
2021-11-05 20:24:50 -04:00
Deluan
5994c31f4c
Fix migration to support null values
2021-11-04 21:23:41 -04:00
Deluan
9e48d87f84
Add a new index for album, to optimize the getAlbumList?type=alphabeticalByArtist Subsonic query
2021-11-02 22:08:21 -04:00
Deluan
133fed344f
Add owner_id to playlist
2021-10-31 15:08:06 -04:00
Deluan
f645c4769c
Fix double escaped lyrics and comments
2021-10-26 19:33:21 -04:00
Deluan
cc1659aa73
Better way to match top songs from external sources (Last.fm)
2021-10-23 20:26:30 -04:00
Deluan
cf8d08ec26
Initial drafts for Smart Playlists
2021-10-23 20:25:28 -04:00
Miguel A. Arroyo
e12a14a87d
feat: Adds Audio Channel Metadata - #1036
2021-09-20 19:33:50 -04:00
Deluan
344d7a4392
Inject DB into DataStore, instead of hardcode the dependency
2021-07-31 20:15:20 -04:00
Deluan
e2233779f1
Force full rescan when adding multi-genres
2021-07-20 17:45:08 -04:00
Deluan
7cd3a8ba67
Add genre tables, read multiple-genres from tags
2021-07-20 17:45:08 -04:00
Deluan
289da56f64
Implement Scrobble buffering/retrying
2021-07-02 10:04:41 -04:00
Deluan
6dd38376f7
Add referential integrity to remove user's props when user is deleted
2021-06-25 23:09:10 -04:00
Deluan
4853760fb5
Suppress logs of successful DB migrations applied when running for the first time
2021-06-24 23:43:20 -04:00
Deluan
5001518260
Move user properties (like session keys) to their own table
2021-06-23 17:49:32 -04:00
Deluan
97434c1789
Fix GetNowPlaying endpoint showing only the last play
2021-06-20 10:39:19 -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
Yash Jipkate
af210c8903
Add Native Sharing REST API ( #1150 )
...
* Initial draft - UNTESTED
* changes to Save() and Update()
* apply col filter and limit nanoid
* remove columns to not update
2021-06-08 15:44:30 -04:00
Yash Jipkate
327c259a3d
Create share table and repository. ( #930 )
...
* Add share table and repository
* Add datastore mock
* Try fixing indent
* Try fixing indent - 2
* Try fixing indent - 3
* Implement rest.Repository and rest.Persistance
* Renew date
* Better error handling
* Improve field name
* Fix json name conventionally
2021-05-30 11:50:35 -04:00
Deluan
c0243580c0
Integrate goose log with our own log system
2021-05-11 19:08:06 -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
caiocotts
b671d0ff7b
Better handling of album comments ( #1013 )
...
* Change album comment behaviour
* Don't check first item
* Fix previously imported album comments.
* Remove song comments if album comment is present
2021-04-24 21:40:55 -04:00
Deluan
16a5ac323b
Fix migration error caused by #868
2021-04-15 21:25:02 -04:00
Deluan
300a0292ba
Add timestamp indexes
2021-03-22 13:38:20 -04:00
Deluan
a4abe6ea2b
Rename migration package to migrations
2021-03-22 13:38:04 -04:00
Deluan
6ee45a9ccc
Move project to Navidrome GitHub organization
2021-02-06 21:46:35 -05:00
Deluan
861b406575
Use new simplified uuid.NewString() syntax
2021-02-01 01:22:31 -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
975579ab26
Add option for player to report real paths in Subsonic API. Closes #625
2020-11-28 10:25:23 -05:00
Deluan
cf90f0a245
Update sizes with SQL, instead of a full rescan
2020-11-15 19:26:16 -05:00
Deluan
98af68ac99
Import comments and lyrics
2020-11-11 10:43:17 -05:00
Deluan
cfad35544b
Add artistImageUrl available in getArtists endpoint
...
Also cache artist info in the DB for 1 hour
2020-11-01 14:37:29 -05:00
Deluan
21ed7348c6
Remove invalid migration
2020-10-26 10:57:21 -04:00
Deluan
1e56f4da76
Add simple cache warmer, disabled by default
2020-10-25 23:22:52 -04:00
Deluan
075c28d2e5
Fix performance and precision of TopSongs
2020-10-21 14:07:01 -04:00
Deluan
a45b5a037f
Match Top Songs by mbid, add indexes to media_file
2020-10-21 10:13:03 -04:00
Deluan
3cf8b8e97d
Fix migration that adds MBIDs
2020-10-21 09:02:51 -04:00
Deluan
6663c079e0
Add MBIDs to media_file, album and artist
2020-10-20 16:27:22 -04:00
Deluan
68a9be5e86
Add Artist (discography) size, and show sizes in Download caption
2020-10-12 22:31:01 -04:00
Deluan
ae817da223
Upgrade golangci-lint
...
- Fix a SQL string concatenation
- Install golangci-lint using `tools.go`
2020-10-12 12:21:01 -04:00
Jay R. Wren
fd6edf967f
Add size to album details ( #561 )
...
* add size to album details
for #534
* addressing review comments:
* create index album(size)
* remove unneeded Size field from refresh struct
* add whitespace to album details
* add size to album list view
* prettier
2020-10-12 11:10:07 -04:00
Deluan
180f1354fc
Make package name compatible with version installed by make setup
2020-10-03 20:13:47 -04:00
Deluan
47976e13b1
Create index to make sort by starred faster
2020-10-03 20:08:51 -04:00
Deluan
45e708f591
Loosen up constraints for email. Fixes #362
2020-08-19 12:22:41 -04:00
Deluan
21b9f51b71
Rename migrations package, to match goose generated migration files
2020-08-01 16:49:01 -04:00
Deluan
ed726c2126
Better implementation of Bookmarks, using its own table
2020-08-01 12:17:15 -04:00
Deluan
2d3ed85311
Add bookmark in persistence layer
2020-07-31 17:45:49 -04:00
Deluan
721a959735
Create playqueue table and repository
2020-07-31 17:45:49 -04:00
Deluan
35114be5f7
Add path to playlist
2020-07-17 22:55:51 -04:00
Deluan
8260b46e8f
Fix migration
2020-07-12 11:22:24 -04:00
Deluan
f0a5df7cd7
Move transcodings initialization to a migration
...
This will make it run only once, not every
time the transcoding table is empty
2020-07-06 23:48:43 -04:00
Deluan
94d88395e7
Add referential integrity to player and playlist tables
2020-06-10 18:07:10 -04:00
Deluan
201a22e613
Change index in playlist to start from 1
2020-05-26 13:50:15 -04:00
Deluan
a56e588c8e
Create relation table for playlist tracks
2020-05-16 18:35:34 -04:00
Deluan
0d9361734f
Import and display disc subtitles
2020-05-12 12:57:53 -04:00
Deluan
70047fe20e
Add songCount column to Artist table
2020-05-08 10:05:48 -04:00
Deluan
ddeefad501
Fix goimport and gosec warnings
2020-04-26 15:07:36 -04:00
Deluan
69c19e946c
Add sort tags and use them in search
2020-04-24 15:02:20 -04:00
Deluan
1a8d219197
Remove generated comments from migrations
2020-04-19 23:29:08 -04:00
Deluan
80c8d85cb9
Fine tune search functionality
2020-04-19 23:29:07 -04:00
Deluan
689449df9e
Force reindex to fix album by year searches
2020-04-18 11:08:54 -04:00
jvoisin
52b8c5f151
Correctly handle error in migration
2020-04-12 14:58:08 -04:00
Deluan
e232c5c561
Add created and changed fields to playlists responses
2020-04-11 18:58:43 -04:00
Deluan
b661d52477
Force full scan to enable search by tracks' artists in albums
2020-04-09 00:24:26 -04:00
Deluan
86a23f9b14
Add more indexes to MediaFile table
2020-04-04 21:56:22 -04:00
Deluan
53e8a92fed
feat: rename year to max_year and add min_year to album. #118
2020-03-27 21:11:06 -04:00
Deluan
dcb3b3b5d1
fix: various album_artists <-> artists mismatches
2020-03-26 09:08:53 -04:00
Deluan
100db2bcfd
feat: add artist filter to album view
2020-03-25 20:40:18 -04:00
Deluan
32fbf2e9eb
refactor: drop search table, integrated full_text into main tables
2020-03-19 21:44:48 -04:00
Deluan
45180115a6
feat: player CRUD
2020-03-17 15:20:35 -04:00
Deluan
8ec78900c5
feat: transcoding and player datastores and configuration
2020-03-17 15:20:35 -04:00
Deluan
9cb42606ba
fix: force full rescan to enable search by album artist
2020-03-10 17:23:25 -04:00
Deluan
faa2a978c0
refactor: use only one DB instance for the whole application
2020-02-28 15:06:31 -05:00
Deluan
38faffa907
feat: notice function to notify (in logs) about important changes in migrations
2020-02-28 14:00:41 -05:00
Deluan
e6d2056438
fix: typo
2020-02-20 19:39:32 -05:00
Deluan
fc14e346b9
feat: store duration as float, to cater for milliseconds
2020-02-20 17:02:06 -05:00