From 17657c6e7382428481d6f866ca355e328bc17cfe Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Wed, 6 Jan 2021 15:24:49 +0100 Subject: [PATCH] CMD: Add the '__import' command in the protocol to import favorites --- inc/lektor/commands.h | 1 + src/base/commands.c | 9 +++++++++ src/main/lkt.c | 2 +- src/net/listen.c | 2 ++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/inc/lektor/commands.h b/inc/lektor/commands.h index 7cc63b06..bae6beeb 100644 --- a/inc/lektor/commands.h +++ b/inc/lektor/commands.h @@ -85,6 +85,7 @@ bool command_user_add(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_AR /* Program management control */ bool command_restart(struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX]); bool command_kill (struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX]); +bool command_import (struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX]); bool command_update (struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX]); bool command_rescan (struct lkt_state *srv, size_t c, char *argv[LKT_MESSAGE_ARGS_MAX], int forced); diff --git a/src/base/commands.c b/src/base/commands.c index 9b7b4933..d5b442ec 100644 --- a/src/base/commands.c +++ b/src/base/commands.c @@ -60,6 +60,15 @@ command_update(struct lkt_state *srv, size_t c, char UNUSED *argv[LKT_MESSAGE_AR return ! MOD_PROC(srv->repo_mod, "update"); } +bool +command_import(struct lkt_state *srv, size_t c, char UNUSED *argv[LKT_MESSAGE_ARGS_MAX]) +{ + RETURN_UNLESS(lkt_client_auth(srv, c, false), "Failed to authentificate user", false); + srv->mpd_idle_events |= MPD_IDLE_UPDATE; + srv->mpd_idle_events |= MPD_IDLE_DATABASE; + return ! MOD_PROC(srv->repo_mod, "import"); +} + bool command_rescan(struct lkt_state *srv, size_t c, char UNUSED *argv[LKT_MESSAGE_ARGS_MAX], int UNUSED forced) diff --git a/src/main/lkt.c b/src/main/lkt.c index 5edcc32d..af3f49ec 100644 --- a/src/main/lkt.c +++ b/src/main/lkt.c @@ -358,7 +358,7 @@ update__(struct cmd_args *args) noreturn void import__(struct cmd_args *args) { - rescan_or_update__(args, "import"); + rescan_or_update__(args, "__import"); } noreturn void diff --git a/src/net/listen.c b/src/net/listen.c index 00f7c7f8..908c026b 100644 --- a/src/net/listen.c +++ b/src/net/listen.c @@ -162,6 +162,8 @@ handle_simple_command(struct lkt_state *srv, size_t c, struct lkt_command cmd) err = ! command_update(srv, c, cmd.args); else if (STR_MATCH(cmd.name, "rescan")) err = ! command_rescan(srv, c, cmd.args, false); + else if (STR_MATCH(cmd.name, "__import")) + err = ! command_import(srv, c, cmd.args); else if (STR_MATCH(cmd.name, "__rescan")) err = ! command_rescan(srv, c, cmd.args, true); -- GitLab