mirror of
https://github.com/owntone/owntone-server.git
synced 2025-02-26 04:49:18 -05:00
[db/mpd] Simplify getting file count from db
This commit is contained in:
parent
c45a85d143
commit
0b2ee5a9eb
25
src/db.c
25
src/db.c
@ -1685,6 +1685,31 @@ db_query_fetch_count(struct query_params *qp, struct filecount_info *fci)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
db_filecount_get(struct filecount_info *fci, struct query_params *qp)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ret = db_query_start(qp);
|
||||
if (ret < 0)
|
||||
{
|
||||
db_query_end(qp);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
ret = db_query_fetch_count(qp, fci);
|
||||
if (ret < 0)
|
||||
{
|
||||
db_query_end(qp);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
db_query_end(qp);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
db_query_fetch_string(struct query_params *qp, char **string)
|
||||
{
|
||||
|
3
src/db.h
3
src/db.h
@ -562,6 +562,9 @@ db_file_enable_bycookie(uint32_t cookie, char *path);
|
||||
int
|
||||
db_file_update_directoryid(char *path, int dir_id);
|
||||
|
||||
int
|
||||
db_filecount_get(struct filecount_info *fci, struct query_params *qp);
|
||||
|
||||
/* Playlists */
|
||||
int
|
||||
db_pl_get_count(void);
|
||||
|
30
src/mpd.c
30
src/mpd.c
@ -807,26 +807,13 @@ mpd_command_stats(struct evbuffer *evbuf, int argc, char **argv, char **errmsg)
|
||||
memset(&qp, 0, sizeof(struct query_params));
|
||||
qp.type = Q_COUNT_ITEMS;
|
||||
|
||||
ret = db_query_start(&qp);
|
||||
ret = db_filecount_get(&fci, &qp);
|
||||
if (ret < 0)
|
||||
{
|
||||
db_query_end(&qp);
|
||||
|
||||
*errmsg = safe_asprintf("Could not start query");
|
||||
return ACK_ERROR_UNKNOWN;
|
||||
}
|
||||
|
||||
ret = db_query_fetch_count(&qp, &fci);
|
||||
if (ret < 0)
|
||||
{
|
||||
db_query_end(&qp);
|
||||
|
||||
*errmsg = safe_asprintf("Could not fetch query count");
|
||||
return ACK_ERROR_UNKNOWN;
|
||||
}
|
||||
|
||||
db_query_end(&qp);
|
||||
|
||||
artists = db_files_get_artist_count();
|
||||
albums = db_files_get_album_count();
|
||||
|
||||
@ -2457,31 +2444,18 @@ mpd_command_count(struct evbuffer *evbuf, int argc, char **argv, char **errmsg)
|
||||
}
|
||||
|
||||
memset(&qp, 0, sizeof(struct query_params));
|
||||
|
||||
qp.type = Q_COUNT_ITEMS;
|
||||
|
||||
mpd_get_query_params_find(argc - 1, argv + 1, &qp);
|
||||
|
||||
ret = db_query_start(&qp);
|
||||
ret = db_filecount_get(&fci, &qp);
|
||||
if (ret < 0)
|
||||
{
|
||||
db_query_end(&qp);
|
||||
sqlite3_free(qp.filter);
|
||||
|
||||
*errmsg = safe_asprintf("Could not start query");
|
||||
return ACK_ERROR_UNKNOWN;
|
||||
}
|
||||
|
||||
ret = db_query_fetch_count(&qp, &fci);
|
||||
if (ret < 0)
|
||||
{
|
||||
db_query_end(&qp);
|
||||
sqlite3_free(qp.filter);
|
||||
|
||||
*errmsg = safe_asprintf("Could not fetch query count");
|
||||
return ACK_ERROR_UNKNOWN;
|
||||
}
|
||||
|
||||
evbuffer_add_printf(evbuf,
|
||||
"songs: %d\n"
|
||||
"playtime: %" PRIu64 "\n",
|
||||
|
Loading…
x
Reference in New Issue
Block a user