whatdoineed2do
a0ea8416f6
[db] fix 'add next' when in queue shuffle mode ( #1414 )
...
* [db] fix 'add next' when in queue shuffle mode
* [db] review on 'add next' fix
Co-authored-by: whatdoineed2do/Ray <whatdoineed2do@nospam.gmail.com>
2022-02-06 20:23:06 +01:00
ejurgensen
a19f5e3915
[db] Use static_assert() for map size consistency checking
2022-02-05 22:20:57 +01:00
chme
1d2e4dc7a8
[db,library] Add "scan_kind" field to playlists, directories and files
...
(db upgrade to v22.00)
`scan_kind` identifies the library "scanner" component that created the
item and is responsible to keep it up to date (rescan).
The library update now supports passing a `scan_kind` to update only the
items of one particular "scanner". This allows e. g. to only update the
item from the Spotify library or only update the RSS feeds.
The OwnTone database is upgraded to v22.00 and the `scan_kind` columns
in `files`, `playlists`, `directories` are identified by:
1. Check if item is part of a RSS playlist (podcast RSS feed), they
belong to the "rssscanner"
2. Check if item has a Spotify `virtual_path`, they belong to the
"spotifyscanner"
3. Remaining items belong to the "filescanner"
2022-01-22 10:38:31 +01:00
ejurgensen
d72958f1f7
[db] Coverity fixups
2022-01-20 20:17:38 +01:00
chme
8becdee8f1
[db] Refactor db_query_fetch_* functions to take the output parameter
...
first and the input parameter as last parameter
2021-12-28 07:23:56 +01:00
chme
a65ee4462e
[db] Refactor fetching query result into generic function
...
Additionally changes the return value in case the end of the result set
is reached.
2021-12-28 06:55:35 +01:00
chme
d7086cab00
[db,jsonapi] Additional meta data for browse queries
2021-12-28 06:29:07 +01:00
ejurgensen
41e3733ccc
[misc] Make safe_xxx integer conversions safer by checking for NULL input
...
Also don't touch output on error + fix missing check for return in db.c
2021-10-09 23:39:00 +02:00
ejurgensen
679c142212
[db] Remove unused strdup_if()
2021-10-01 18:58:13 +02:00
whatdoineed2do/Ray
4d5c256327
[db,jsonapi] revert usermark from queue item table
2021-09-16 10:43:55 +01:00
whatdoineed2do/Ray
d43ce017f5
[db,jsonapi,smartpl] db usermark flag review
2021-09-08 14:51:55 +01:00
whatdoineed2do/Ray
ad573b8bc7
[db,jsonapi]] update api/library/tracks and db to accept 'flag' param
2021-09-06 20:15:35 +01:00
whatdoineed2do/Ray
4dcc9b602e
[db] add review 'flag' column to files/queue tbls
2021-09-06 20:15:35 +01:00
ejurgensen
d2187d0ace
[db] Partially revert commit aaffa4a
so that source sort tags are used again
...
Fix for issue #1257
2021-05-25 23:44:53 +02:00
ejurgensen
684c23a044
[db] Fix error where adding Spotify track to queue returns "0 tracks added"
...
Caused by queue_item_add returning >0 as success, but caller is expecting ==0.
Try to avoid other occurancess of this issue by generally checking for error
("ret < 0") instead.
2021-05-24 21:55:09 +02:00
ejurgensen
5f1686695a
[-] Name update forked-daapd -> owntone throughout the code
2021-04-24 23:54:20 +02:00
ejurgensen
bd91a238ec
[db] Upgrade schema to 21.06, change default of query_limit to 0
2021-02-10 20:04:56 +01:00
ejurgensen
79b4a070b0
[db] Change type of "disabled" to int64
...
Before the value in the db was not read straight into mfi->disabled and
pli->disabled, instead it was evaluated as != 0, so the ->disabled field
would just be true or false. This was also necessary when INOTIFY_FAKE_COOKIE
(1 << 32) was written to the DB, because it could not fit in the uint32 of
mfi->disabled/pli->disabled.
I consider this juggling poor practice, so with this change it is read straight
in and out, always as a int64.
2021-02-09 15:16:06 +01:00
ejurgensen
b6163c9d34
[db] Fix bug in bind_generic, input to sqlite3_bind_int64 should be int64_t
2021-02-09 15:16:06 +01:00
ejurgensen
1fa1d9091b
[db] Consolidate setting struct fields from database queries
2021-02-09 15:16:06 +01:00
ejurgensen
689d1ce3dd
[db] Refactor queue_item functions
...
- Use prepared statements
- Add qi_mfi_map that defines mapping between mfi, dbmfi and qi
- Use qi_cols_map/qi_mfi_map for iteration (avoid duplicating field references)
- Stick to "qi" as name for a queue_item in db.c (more similar to mfi/pli/gri)
- Some renaming and other minor stuff in db.c's queue code
2021-02-09 15:16:06 +01:00
ejurgensen
aaffa4a83f
[jsonapi] Add support for updating queue_item metadata ( closes #1153 )
...
This commit also changes db.c's sort_tag_create to always recreate sort tags,
so that they match source tags, should they have changed. Unclear to me why
the previous solution didn't do that, so will probably regret this change when
it dawns on me.
2021-01-21 20:56:05 +01:00
Christian Meffert
22a4af7b93
Merge pull request #1111 from whatdoineed2do/disable-playlist-caching
...
[db] playlist cache invalidation fix
2020-11-07 08:43:07 +01:00
ejurgensen
745fee4eb9
[db] Remove unused macro STR()
2020-11-05 23:02:44 +01:00
whatdoineed2do/Ray
7917695676
[db] add LISTENER_DATABASE for db_pl_*() on CRUD
2020-11-03 10:12:42 +00:00
whatdoineed2do/Ray
827921a028
[db] update db_statement_run() to accepts update events like db_query_run()
2020-11-03 09:28:14 +00:00
ejurgensen
f48fae20e2
[db] Remove unused db_speaker_clear_all()
2020-10-19 20:39:03 +02:00
chme
a74a3e5add
[db] Add fields time_added, time_played, seek to group object
2020-08-30 09:08:41 +02:00
chme
8afae4a41b
[db] Fetch additional metadata for artist and album in group query
2020-08-30 09:08:41 +02:00
whatdoineed2do/Ray
d567bd004a
[db,conf,json] new backup endpoint
2020-07-24 20:07:42 +02:00
ejurgensen
1b74966ef1
[db] Remove HAVE_SPOTIFY_H conditionals, not required
...
The db functions don't depend on the Spotify library, so remove conditionals
2020-07-05 20:43:51 +02:00
ejurgensen
de1b1c3805
[cfg] Remove hardcoding of strings for unknown album etc
...
Now configurable, since we don't have real localisation
2020-05-11 17:02:14 +02:00
whatdoineed2do/Ray
e7c62086a2
[db] add artwork_url to playlist_info
2020-04-30 20:28:36 +02:00
ejurgensen
1a45a2acda
[db] Fix db_pl_delete so it won't delete files belonging to other pl's
2020-04-04 21:07:16 +02:00
ejurgensen
b19314e814
[db] Add cleanup to db_pl_delete(), remove db_pl_purge()
2020-04-04 21:07:16 +02:00
whatdoineed2do/Ray
57b0626906
[db] RSS support: new PL_RSS db value and new pl purge
2020-04-04 21:07:16 +02:00
ejurgensen
f61dfa0529
[db] db_pl_delete_bypath() must also delete disabled playlists
...
Otherwise we end up with a bunch of disabled playlists in the db.
2020-03-29 00:33:44 +01:00
whatdoineed2do/Ray
286525a85c
[db] inc playcount using filter
2020-03-23 13:39:59 +00:00
Christian Meffert
1bf094ed81
Merge pull request #906 from chme/playlist_folder2
...
JSON API - Support for Playlist Folders
2020-03-08 07:31:09 +01:00
ejurgensen
64c6007aad
[db] Fix memleak from unexpected return value, closes issue #909
...
On success the function was returning SQLITE_OK = 100, not 0, which made
json_reply_library think that the operation failed.
Credit @whatdoineed2do
2020-02-25 21:58:18 +01:00
chme
36ebf7d06c
[jsonapi] Add support for playlist folders
2020-02-24 21:27:53 +01:00
ejurgensen
5736217315
[db] Change prototype of db_admin_getxxx() functions
...
Makes it possible for caller to distinguish between "not set" and "set to 0".
2020-02-23 20:30:35 +01:00
ejurgensen
00de0a3f76
[db] Fixup commit #1edfadc
2020-02-23 20:25:22 +01:00
whatdoineed2do/Ray
78194807db
[db] add S_RELEASEDATE and idx
2020-02-23 20:25:22 +01:00
ejurgensen
b40e691e6e
[db] Fix memleak of mfi->url
...
Credit @whatdoineed2do
2020-02-16 21:16:33 +01:00
ejurgensen
f4cb0fb79d
[db] Error checking for alloc failure
2020-02-08 16:10:33 +01:00
ejurgensen
e9d1a2475e
[db] Fix memleak on error from prev commit
2020-02-08 15:17:34 +01:00
ejurgensen
541a1a6701
[db] Orphan nested playlists if parent is deleted/cleared
...
Also align db_pl_delete_bypath with db_pl_delete by making it a wrapper.
2020-02-08 13:41:26 +01:00
ejurgensen
5295d787ad
[scan] Change library_playlist_save return + fix Spotify
...
* fix Spotify invalid mem access
* fix clearing of Spotify files
2020-02-08 10:55:15 +01:00
ejurgensen
77a8de3bea
[scan] Fix db_pl_add() so it always returns correct id
2020-02-08 10:55:15 +01:00