Merge pull request #408 from chme/web

Add a web api and a webinterface
This commit is contained in:
ejurgensen
2017-09-15 23:15:49 +02:00
committed by GitHub
49 changed files with 15441 additions and 264 deletions

View File

@@ -608,6 +608,10 @@ mpd_command_idle(struct evbuffer *evbuf, int argc, char **argv, char **errmsg)
{
client->events |= LISTENER_DATABASE;
}
else if (0 == strcmp(argv[i], "update"))
{
client->events |= LISTENER_UPDATE;
}
else if (0 == strcmp(argv[i], "player"))
{
client->events |= LISTENER_PLAYER;
@@ -639,7 +643,7 @@ mpd_command_idle(struct evbuffer *evbuf, int argc, char **argv, char **errmsg)
}
}
else
client->events = LISTENER_PLAYER | LISTENER_QUEUE | LISTENER_VOLUME | LISTENER_SPEAKER | LISTENER_OPTIONS;
client->events = LISTENER_PLAYER | LISTENER_QUEUE | LISTENER_VOLUME | LISTENER_SPEAKER | LISTENER_OPTIONS | LISTENER_DATABASE | LISTENER_UPDATE | LISTENER_STORED_PLAYLIST;
idle_clients = client;
@@ -808,26 +812,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();
@@ -2458,31 +2449,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",