Deluan
20b7e5c49b
Add Genre filters to UI
2021-07-20 17:45:08 -04:00
Deluan
b56e034ce3
Add multiple genres to Artists
2021-07-20 17:45:08 -04:00
Deluan
1d8607ef6a
Remove unnecessary repositories methods
2021-07-20 17:45:08 -04:00
Deluan
5e54925520
Add multiple genres to Albums
2021-07-20 17:45:08 -04:00
Deluan
39da741a80
Add multiple genres to MediaFile
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
ee21f3957e
Pass userId explicitly to UserPropsRepository methods
2021-06-25 22:21:37 -04:00
Deluan
abe8015745
Add option to disable external scrobbling per player
2021-06-23 17:55:58 -04:00
Deluan
5001518260
Move user properties (like session keys) to their own table
2021-06-23 17:49:32 -04:00
Deluan
502a719e96
Implement Last.FM Desktop Auth flow endpoints
2021-06-21 18:14:01 -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
Deluan
b65e76293a
Only send events to clients who need it
...
- User events (star, rating, plays) only sent to same user
- Don't send to the client (browser window) that originated the event
2021-06-15 18:59:26 -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
Deluan
519c89345e
Omit empty fields from Native API responses
2021-05-31 12:20:21 -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
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
874b17b8f6
Require user to provide current password to be able to change it
...
Admins can change other users' password without providing the current one, but not when changing their own
2021-05-03 15:03:34 -04:00
Deluan
e3fe8399c8
Fix DevAutoCreateAdminPassword
2021-05-01 18:40:02 -04:00
Deluan
eaf40efdf4
Never send passwords to the UI
2021-04-29 20:04:01 -04:00
Deluan
720e2357b7
Add option to sort Recently Added by file's mtime instead of time of import.
2021-03-12 18:18:35 -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
975579ab26
Add option for player to report real paths in Subsonic API. Closes #625
2020-11-28 10:25:23 -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
1cfa7b2272
Change MediaFolder.ID type to int32
2020-10-25 23:22:52 -04:00
Deluan
1cd2f015c2
Get Similar Artists in parallel
...
Also don't fail `GetArtistInfo` when Last.FM is not configured
2020-10-21 21:44:03 -04:00
Deluan
6663c079e0
Add MBIDs to media_file, album and artist
2020-10-20 16:27:22 -04:00
Deluan
a257891b46
Get better artist images results
2020-10-20 16:07:31 -04:00
Deluan
e9e09a7480
Add dedicated SimilarArtists call
2020-10-20 16:07:31 -04:00
Deluan
29d8950e5b
Better ArtistInfo field names
2020-10-20 16:07:31 -04:00
Deluan
07d96f8308
Add missing fields to ArtistInfo
2020-10-20 16:07:31 -04:00
Deluan
07535e1518
Add ExternalInformation core service (not a great name, I know)
2020-10-20 16:07:31 -04:00
Deluan
2f8dc794de
Add and show Playlists sizes
2020-10-12 22:31:01 -04:00
Deluan
68a9be5e86
Add Artist (discography) size, and show sizes in Download caption
2020-10-12 22:31:01 -04:00
Deluan
2de0a40c6f
Fix Album size should be int64
2020-10-12 21:04:12 -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
f859772723
Remove dangling tracks after changing MusicFolder. Fix #445
2020-10-02 16:18:45 -04:00
Deluan
596a4897a3
Do not force username to always be lowercase in the DB
2020-09-01 18:00:19 -04:00
Deluan
ed726c2126
Better implementation of Bookmarks, using its own table
2020-08-01 12:17:15 -04:00
Deluan
3d0e70e907
Add MediaFile to Bookmark
2020-07-31 17:45:49 -04:00
Deluan
34e843a4b3
Add updatedAt to Bookmarks
2020-07-31 17:45:49 -04:00
Deluan
2d3ed85311
Add bookmark in persistence layer
2020-07-31 17:45:49 -04:00
Deluan
3000238a3c
Implements the get/save play queue Subsonic endpoints and bumps API version to 1.12.0
2020-07-31 17:45:49 -04:00
Deluan
721a959735
Create playqueue table and repository
2020-07-31 17:45:49 -04:00
Deluan
b9b6ce066b
Auto-Import playlists found in the Music Folder
2020-07-17 22:55:51 -04:00
Deluan
35114be5f7
Add path to playlist
2020-07-17 22:55:51 -04:00
Deluan
dc8368c89c
Return counter from DeleteByPath
2020-07-12 11:53:07 -04:00
Deluan
a6af46dbad
Always use lowercase username, as it is used for referential integrity. Fixes #352
2020-06-14 20:20:10 -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
f8a18b59b0
Add link to album from player's song title. Fixes #324
2020-06-12 17:02:13 -04:00
Deluan
331fa1d952
Add ability to reorder playlist items
2020-06-04 19:05:41 -04:00
Deluan
8a68cecdb9
Add ToggleStar to SongContextMenu (WIP)
2020-05-22 15:23:42 -04:00
Deluan
17df63b550
Fix `child.size` and `directory.playCount` compatibility with Subsonic API. Fixes #304
2020-05-19 23:51:23 -04:00
Deluan
c2d1e9df9f
Remove orphan tracks from playlists after they are removed from library
2020-05-18 20:32:01 -04:00
Deluan
12cf2f1104
Remove tracks from playlist
2020-05-16 18:35:34 -04:00
Deluan
e81a9dd1b5
Add tracks to playlist
2020-05-16 18:35:34 -04:00
Deluan
5682d0e721
Remove tracks from Playlist's GetAll
2020-05-16 18:35:34 -04:00
Deluan
aebee651ac
Add nested resource `playlist/{id}/tracks`
2020-05-16 18:35:34 -04:00
Deluan
a56e588c8e
Create relation table for playlist tracks
2020-05-16 18:35:34 -04:00
Deluan
5afcd0ad22
Make field names camelCase
2020-05-16 18:35:34 -04:00
Deluan
4e613be960
Add playlists REST endpoint
2020-05-16 18:35:34 -04:00
Deluan
f8362a4acb
Fix staticcheck's SA1029
2020-05-13 16:49:55 -04:00
Deluan
0d9361734f
Import and display disc subtitles
2020-05-12 12:57:53 -04:00
Deluan
0d1e2a92f6
Make MediaFolder ID int32
2020-05-09 22:29:02 -04:00
Deluan
1ed6d130b1
Fix `getMusicFolders` and `getIndexes` API compliance. Fix #286
2020-05-09 21:02:38 -04:00
Deluan
70047fe20e
Add `songCount` column to Artist table
2020-05-08 10:05:48 -04:00
Deluan
371e8ab6ca
Generate Order Fields based on sanitized version of original fields
2020-04-24 15:02:20 -04:00
Deluan
69c19e946c
Add sort tags and use them in search
2020-04-24 15:02:20 -04:00
Deluan
0e1735e7a9
Add getSongsByGenre endpoint
2020-04-17 21:44:34 -04:00
Deluan
9fb4f5ef52
Removed Playlist.GetWithTracks, not needed anymore
2020-04-11 19:05:51 -04:00
Deluan
e232c5c561
Add `created` and `changed` fields to playlists responses
2020-04-11 18:58:43 -04:00
Deluan
43ce81af67
Add all individual artists from album in searchable full text field. Should fix #94
2020-04-08 23:54:54 -04:00
Deluan
777231ea79
feat: expose album, song and artist annotations in the RESTful API
2020-03-28 19:22:55 -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
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
811703ab60
fix: create default transcodings on existing installations
2020-03-17 16:49:37 -04:00
Deluan
c8b0d2bfae
feat: select correct transcoding for streaming
2020-03-17 15:20:35 -04:00
Deluan
39993810b3
feat: add `transcodedSuffix` to Subsonic API responses
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
6f5a322927
fix: login must be case-insensitive
2020-03-01 15:45:41 -05:00
Deluan
fc14e346b9
feat: store duration as float, to cater for milliseconds
2020-02-20 17:02:06 -05:00
Deluan
d4365b9f64
refactor: read musicFolderId from request (but still don't use it)
2020-02-01 17:23:03 -05:00
Deluan
88e01d05f6
refactor: annotations
2020-02-01 17:23:03 -05:00
Deluan
de1fea64bc
refactor: introduce GC, to delete old data
2020-02-01 17:23:03 -05:00
Deluan
f5071d1614
refactor: adding back artist and album tables
2020-02-01 17:23:03 -05:00
Deluan
72d9ddf532
refactor: remove annotation handling from engine
2020-02-01 17:23:03 -05:00
Deluan
67ed830a68
refactor: add filters
2020-02-01 17:23:03 -05:00
Deluan
71c1844bca
refactor: new persistence, more SQL, less ORM
2020-02-01 17:23:03 -05:00
Deluan
0d2911daf9
refactor: add Context to the persistence layer
2020-01-27 09:41:33 -05:00
Deluan
ed31b6fa31
Remove unused code
2020-01-22 15:42:29 -05:00
Deluan
9557f7ceed
Initial support for song browsing from UI
2020-01-22 10:47:43 -05:00
Deluan
c8a74881d8
Fix album lists, to use annotations
2020-01-22 01:00:00 -05:00
Deluan
d7116eebd4
Implement annotations per user
2020-01-21 23:03:37 -05:00
Deluan
d4adc784cc
Return playlist duration in getPlayList
2020-01-21 18:10:29 -05:00
Deluan
7fe15134a6
Check permissions to playlist operations
2020-01-21 17:18:46 -05:00
Deluan
57fcdac428
Initial support for playlists. Missing permissions
2020-01-21 16:39:35 -05:00
Deluan
de0816da67
Reimplemented GetAlbumList&type=random and GetRandomSongs (now with filter by genres)
2020-01-21 08:49:43 -05:00
Deluan
c6ed0d5377
Remove flag to allow override media annotation
2020-01-20 18:19:16 -05:00
Deluan
99c28731d4
Authenticate Subsonic API calls using the DB
2020-01-20 13:42:43 -05:00
Deluan
e717d99780
Authenticate UI
2020-01-20 10:25:35 -05:00
Deluan
6785d616d0
Remove unused PurgeInactive methods
2020-01-20 08:16:22 -05:00
Deluan
491bfb1f69
Create initial user if User table is empty. Also make model.QueryOptions compatible with rest.QueryOptions
2020-01-19 22:47:22 -05:00
Deluan
2ab0cecd48
Complete User CRUD
2020-01-19 21:46:36 -05:00
Deluan
1c04a19910
Add UserList in UI
2020-01-19 20:40:18 -05:00
Deluan
67eeb218c4
Big Refactor:
...
- Create model.DataStore, with provision for transactions
- Change all layers dependencies on repositories to use DataStore
- Implemented persistence.SQLStore
- Removed iTunes Bridge/Importer support
2020-01-19 16:28:09 -05:00
Deluan
fe058aa4a1
Don't override media annotations when scanning/importing
2020-01-18 21:45:44 -05:00
Deluan
938a92eded
Register PlayCount/Date in the DB, if DevUseFolderScanner is true
2020-01-18 20:59:20 -05:00
Deluan
3c66da0b17
NowPlaying is not a repo, now it is part of the main engine
2020-01-18 20:21:25 -05:00
Deluan
128e165aba
Add Stars to the DB, including Artists! Only if DevUseFolderScanner is true
2020-01-18 20:03:52 -05:00
Deluan
54d13d2022
Purge empty albums/artists
2020-01-17 23:28:11 -05:00
Deluan
c0beaa6377
Integrate ArtistIndex logic into Artist
2020-01-17 20:54:28 -05:00
Deluan
035fdaeb96
Remove old tags from models
2020-01-17 20:54:28 -05:00
Deluan
123f543a94
New Folder Scanner - WIP
2020-01-17 20:54:28 -05:00
Deluan
7a16d41abe
Add MediaFile.FindByPath
2020-01-17 20:54:28 -05:00
Deluan
ca04a919ad
Remove Alpha from QueryOptions. Also add Filter, not implemented yet
2020-01-15 23:49:20 -05:00
Deluan
36d93774bc
Add GetGenre endpoint
2020-01-15 17:56:02 -05:00
Deluan
16c550a9d1
Change semantics of ChecksumRepository
2020-01-15 08:54:00 -05:00
Deluan
c404252b7f
Remove sort.Interface from models (not used anymore)
2020-01-15 08:36:25 -05:00
Deluan
19765b0ad8
Removed composition from model, makes it more readable
2020-01-15 08:21:32 -05:00
Deluan
0ea2bd79d9
Rename `domain` to `model`
2020-01-14 22:22:34 -05:00