From 32be746edd7eb4553ba62404d24a56d39416fa3b Mon Sep 17 00:00:00 2001 From: Kubat <mael.martin31@gmail.com> Date: Wed, 6 Jan 2021 16:01:00 +0100 Subject: [PATCH] DB: Can now add by id in playlists --- src/database/playlist.c | 22 +++++++++++++++------- src/module/module_repo.c | 3 +-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/database/playlist.c b/src/database/playlist.c index 35c45950..8fd1008b 100644 --- a/src/database/playlist.c +++ b/src/database/playlist.c @@ -187,9 +187,18 @@ error: bool database_plt_add_uri(volatile sqlite3 *db, const char *name, struct lkt_uri *uri) { + bool sta = false; + sqlite3_stmt *stmt; + if (uri->is_int) { - LOG_ERROR("DB", "Add by ID (where the uri is an integer) is not implemented yet"); - return false; + static const char *SQL = + "INSERT OR REPLACE INTO kara_playlist (kara_id, playlist_id) " + " VALUES (?, (SELECT id FROM playlist WHERE name = ? COLLATE NOCASE));"; + SQLITE_PREPARE(db, stmt, SQL, error); + SQLITE_BIND_INT(db, stmt, 1, uri->id, error); + SQLITE_BIND_TEXT(db, stmt, 2, name, error); + SQLITE_STEP_DONE(db, stmt, error); + sta = true; } else { @@ -199,8 +208,7 @@ database_plt_add_uri(volatile sqlite3 *db, const char *name, struct lkt_uri *uri " kara.id," " (SELECT playlist.id FROM playlist WHERE name = ? COLLATE NOCASE)" "FROM kara WHERE kara.%s LIKE ?;"; - char SQL_STMT[LKT_MAX_SQLITE_STATEMENT], sta = false; - sqlite3_stmt *stmt; + char SQL_STMT[LKT_MAX_SQLITE_STATEMENT]; safe_snprintf(SQL_STMT, LKT_MAX_SQLITE_STATEMENT, SQL, uri->column_name); SQLITE_PREPARE(db, stmt, SQL_STMT, error); @@ -208,8 +216,8 @@ database_plt_add_uri(volatile sqlite3 *db, const char *name, struct lkt_uri *uri SQLITE_BIND_TEXT(db, stmt, 2, (char *) uri->value, error); SQLITE_STEP_DONE(db, stmt, error); sta = true; -error: - sqlite3_finalize(stmt); - return sta; } +error: + sqlite3_finalize(stmt); + return sta; } diff --git a/src/module/module_repo.c b/src/module/module_repo.c index f4f1578e..f4085192 100644 --- a/src/module/module_repo.c +++ b/src/module/module_repo.c @@ -555,8 +555,7 @@ __worker_import_favorites(void *__repo) GOTO_IF(pthread_mutex_unlock(&(repo->mtx)), "Failed to unlock", end_no_lock); struct json_object *json, *item_json = NULL; - LOG_INFO("REPO", "Download favorite lists from %s (%s), directory is %s", - repo->name, repo->get_fav_json, repo->kara_dir); + LOG_INFO("REPO", "Download favorite lists from %s (%s)", repo->name, repo->get_fav_json); if (__json_dl(repo->get_fav_json, &json)) { LOG_ERROR("REPO", "Failed to get json, possibly no internet connexion or repo is down"); pthread_exit(NULL); -- GitLab